gpt4 book ai didi

Javascript 嵌套原型(prototype)

转载 作者:行者123 更新时间:2023-11-29 18:12:26 25 4
gpt4 key购买 nike

前几天我在摆弄 Javascript,我注意到我无法在原型(prototype)函数中为对象编写原型(prototype)。像这样:

var obj = function() { }

obj.prototype.First = function() {
this.prototype.Second = function() {
alert("Second Prototype");
}
}

obj.First();
obj.Second();

由于某种原因,第二个原型(prototype)无法运行,代码也无法运行。是我的语法错误还是有一些我不知道的原型(prototype)限制?谢谢!

编辑:
我不是要将原型(prototype)添加到原型(prototype)中……这没有多大意义。这就是我想要做的:将两个单独的原型(prototype)添加到 obj。调用原型(prototype) 1 时定义原型(prototype) 2。我认为 this 将包含对对象的引用,因此 this.prototype 将与 obj.prototype 相同,但事实并非如此按预期工作。

最佳答案

这是一个老问题,但我想我要加两分钱。此代码试图在“原型(prototype)”上添加功能。但是,这只能在类名上完成。您拥有的是一个指向匿名类的变量。要访问匿名变量的变量,请使用“proto”。以下与您的示例相同,除了使用 proto 它是“成功的”。虽然,我没有看到使用这样的原型(prototype)的好处,因为原型(prototype)添加的方法仅适用于匿名实例“obj”。 http://jsbin.com/zapocamipi/edit?js,console

var obj = function() { }

obj.__proto__.First = function() {
console.log("First Prototype");
this.__proto__.Second = function() {
console.log(this);
}
}

obj.First();
obj.Second();

关于Javascript 嵌套原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26110762/

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