0
下面是JavaScript中令我困惑的一件事:在下面的代碼中,我有一個包含一個屬性的對象構造函數。在它下面,我添加了一些原型方法。方法'method1'能夠很好地訪問'this.property',並返回值30.方法'combine'只是調用'method1',但它返回NaN。似乎'this.property'是公開的第一個電話,但不是第二個。爲什麼這個奇怪的行爲js:方法無法訪問屬性
var ObjBuilder = function()
{
this.property = 3;
};
ObjBuilder.prototype = function()
{
var method1 = function()
{
return this.property * 10;
}
var combine = function()
{
return method1() + 2;
}
return {method1: method1,
combine: combine};
}();
// instantiate an object and call its methods
var obj = new ObjBuilder();
console.log(obj.method1());//prints 30
console.log(obj.combine());//prints NaN. WHY???
如果你在'method1'裏面記錄'this',然後在'combine'裏面調用它,你會看到問題 – Li357
@ t.niese [它看起來不像它](https://jsfiddle.net/3ovc6Lye /) - '窗口'。你必須把它稱爲'this.method1()'來給出'this'上下文。 – Li357