gpt4 book ai didi

javascript - OOP原型(prototype).方法调用this.方法

转载 作者:行者123 更新时间:2023-12-02 19:19:42 26 4
gpt4 key购买 nike

var fn = function() {


this.method1 = function() {

return this.public;
};


this.method2 = function() {

return {

init: function() { return this.public; }
}
};


fn.prototype.public = "method prototype";
};

创建对象fn

var object = new fn();

object.method1() // "method prototype"

object.method2().init(); // undefined

method2().init()函数中的this.public原型(prototype)运行返回未定义?

有原型(prototype)的替代品吗?谢谢。

最佳答案

该问题与 this 绑定(bind)到 method2()init 函数的不同作用域有关,因此请尝试以下操作:

this.method2 = function() {
var self = this;
return {
init: function() { return self.public; }
}
};

所以

object.method2().init(); // return "method prototype"

关于javascript - OOP原型(prototype).方法调用this.方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12688593/

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