gpt4 book ai didi

javascript - 如何从内部原型(prototype)访问类变量 - javascript

转载 作者:行者123 更新时间:2023-11-28 00:25:04 24 4
gpt4 key购买 nike

我的问题标题可能不太清楚。对此感到抱歉。

这就是我想做的。

我正在尝试在 JavaScript 中使用原型(prototype)模式。我创建了一个类,如下所示。

var MyClass = null;
(function() {
MyClass = function() {
this.clsVar = "I'm inside constructor";
};

MyClass.prototype = {
constructor: MyClass,
myFunc1: function() {
console.log("I'm func1 accessing constructor variable : " + this.clsVar);
},
nested: {
myFunc2: function() {
console.log("I'm func2 accessing constructor variable : " + this.clsVar); // I know, this will never point to the class scope
}
}
}
}())

我正在创建一个对象。

var my = new MyClass();

my.myFunc1(); // which prints "I'm func1 accessing constructor variable : I'm inside constructor"

my.nested.myFunc1(); // as expected, it prints "I'm func2 accessing constructor variable : undefined

我想做的就是,我应该能够访问 clsVar来自nested.myFunc2

这可能吗?非常感谢并需要任何帮助。谢谢。

最佳答案

其实,有一点。

myFunc2 中的 this 不再引用 MyClass 而是另一个上下文。因此,最快的方法是使用 callapply ,例如:

var myNewObject = new MyClass();
myNewObject.nested.myFunc2.call(myNewObject, arg1, arg2);

myNewObject.nested.myFunc2.apply(myNewObject, [arg1, arg2]);

关于javascript - 如何从内部原型(prototype)访问类变量 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29622030/

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