在任何人说什么之前,我知道用 Object.prototype 分配某些东西通常是不好的做法,但如果包含这段代码,我希望所有对象都拥有这种东西。奇怪的是,当我也使用 Array 进行操作时也会发生这种情况。这发生在 Node.js 中,所以它使用 V8 javascript 引擎。无论如何,这就是发生的事情。我只是将一个函数分配给这两种类型之一的原型(我已经分别尝试了两种类型,但结果与结果相同,当我使用其他类型时不会发生这种情况)。
Array.prototype.test = function() { console.log("test"); }
var a = ["test1", "test2", "test3"],
index,
entry;
a.test(); //prints 'test'
for(index in a) {
entry = (a[index]).split("e"); //throws an error
}
错误是
Object Function () {console.log("test");} has no method 'split'
想法?