簡體   English   中英

方法中的Javascript訪問對象屬性

[英]Javascript access object property in method

我該如何正確獲取此引用,它返回“ foo undefined”;

function myObject(){
    this.foo="bar"

    this.foo2=this.myMethod.foo3;

    alert(this.foo2);
}

myObject.prototype.myMethod= {
    foo3:'foo'+this.foo;
}

當您這樣做時...

myObject.prototype.myMethod=
{
foo3:'foo'+this.foo;
}

的值this正在從其中被創建對象的當前上下文,這可能不具有評價foo屬性。


不知道為什么要調用它myMethod ,而是分配一個Object,但是如果您實際上使它成為一個方法,則可以獲取正確的foo值。

function myObject(){
    this.foo="bar"
    this.foo2=this.myMethod();
    alert(this.foo2);
}
myObject.prototype.myMethod= function() {
    return 'foo'+this.foo;
};

var o = new myObject(); // alerts "foobar", and returns the new object

'foo' + this.foo在解析時會立即連接在一起,因此它幾乎沒有用( this不涉及實例)。

要獲取一個包含要獲取的變量的對象,必須使用函數。 該函數僅在調用時執行,因此this.foo引用正確的值。

function myObject(){
    this.foo="bar";
    this.foo2=this.myMethod().foo3;
    alert(this.foo2);
}

myObject.prototype.myMethod = function() {
    return {
        foo3: 'foo'+this.foo
    };
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM