我想添加一个能够作用于所有对象的方法。最好它不应该存在于它无法工作的原语(数字、 bool 值、字符串、符号)上。
这可能吗?如果可能的话,如何实现?
使用 Object.prototype 不起作用,因为原始类型继承自 Object。
最佳答案
您可以在Object
的原型(prototype)上设置该函数,然后在构造函数的原型(prototype)上设置您不希望其未定义
的相应成员:
Object.prototype.foo = function() { alert("foo"); };
Number.prototype.foo = undefined;
var x = {};
var y = 10;
x.foo(); // works
y.foo(); // TypeError: y.foo is not a function
我不知道你为什么要这样做,而且看起来有点代码味道,但就是这样。
关于javascript - 将方法继承到除基元之外的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39313108/