在Function.prototype page in MDN中说Function.prototype
不能被修改。”但是当我在控制台中尝试以下代码时,证明我可以修改Function.prototype的现有属性,例如以及我们可以为其添加新属性。
Function.prototype.call = function(context) {
console.log("call() fn has been modified");
};
var f = function() {
//do something..
};
f.call(this);
,它在控制台中显示以下内容。
call() fn has been modified
如果无法修改Function.prototype
,为什么我会看到这种行为?
this问题指的是同一问题。但是这里已经修改了'AclassName.prototype'。不是Function.prototype。
答案 0 :(得分:4)
Function.prototype
不是Function.prototype.call
,通常可以执行SomeConstructor.prototype = { ... }
,但是不能执行Function.prototype = { ... }
。