gpt4 book ai didi

JavaScript : Augmenting Types

转载 作者:行者123 更新时间:2023-11-29 19:15:37 27 4
gpt4 key购买 nike

我正在阅读 JavaScript:The Good Parts 并找到以下示例。我试图更改给定的示例,但出现错误。这有效:

Function.prototype.method = function(name, func){
this.prototype[name] = func;
return this;
}
Number.method("add", function(a, b){
console.log(a+b);
});
var a = new Number();
a.add(2,2);

输出:

4

但下面的不是:

Number.prototype.method = function(name, func){
this.prototype[name] = func;
return this;
}
Number.method("add", function(a, b){
console.log(a+b);
});
var a = new Number();
a.add(2,2);

输出:

Uncaught TypeError: Number.method is not a function

请帮忙。提前致谢。 enter image description here

最佳答案

Number 是 Function 的实例,因此它委托(delegate)给 Function 的原型(prototype)。

在您修改后的版本中,您将 method 添加到 Number.prototype,而不是 Number - 这是一个构造函数。

因此您尝试调用的 Number.method 不存在。

为了让它工作,您需要将第一行 Number.prototype.method 更改为 Number.method

关于JavaScript : Augmenting Types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35574000/

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