gpt4 book ai didi

javascript - js : method can't access property

转载 作者:行者123 更新时间:2023-12-02 13:56:00 25 4
gpt4 key购买 nike

这是 JavaScript 中令我困惑的地方:在下面的代码中,我有一个包含一个属性的对象构造函数。在它下面,我添加了一些原型(prototype)方法。方法“method1”能够很好地访问“this.property”,并且返回值 30。方法“combine”仅调用“method1”,但返回 NaN。似乎“this.property”对第一次调用是公开的,但对第二次调用不是公开的。为什么会有这种奇怪的行为?

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???

最佳答案

我认为你的问题是 combine 只是调用 method1 函数(例如,不是 this.method1),所以 method1 调用中的 this.property * 10 中的 this 未按您的预期绑定(bind),并且可能绑定(bind)到全局对象。

关于javascript - js : method can't access property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40686806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com