gpt4 book ai didi

javascript - 为什么我不能调用原型(prototype)上的方法?

转载 作者:行者123 更新时间:2023-12-01 03:15:56 25 4
gpt4 key购买 nike

我试图在闭包中创建一个 JavaScript 对象构造函数,然后返回该构造函数,以便我可以创建此对象,而不会与其他 JS 库发生任何冲突。

考虑这段代码:

Test = (function(){

var T = function(){
this.x = 0;
}

T.prototype.doSomething = function(){
this.x = 10;
}

return T;

});
var test = new Test();
test.doSomething();
alert(test.x);

当我在原型(prototype)中定义 test.doSomething() 时,为什么它不是一个函数?

最佳答案

您没有创建正确函数的实例!如果您查看测试:

var Test = (function() {
//...
return T;
});

在这里,您将 Test 分配给返回 T函数,而不是 T 本身!这就是为什么你不能调用 T 原型(prototype)上的方法。相反,使用 IIFE:

var Test = (function() {

})(); //Important!

这会将 T 的引用分配给 Test。然后创建一个新实例:

new Test();

关于javascript - 为什么我不能调用原型(prototype)上的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45537496/

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