原型(prototype)在 JavaScript 中被广泛使用,作为一种方便的定义方式 将自动应用于实例的属性和功能 对象。
所以如果我写这个:
function Ninja(){}
Ninja.prototype.swingSword = function(){
return true;
};
var ninja1 = Ninja();
那么,所有的忍者都会有这个方法。
但是如果它只是实例对象 - 为什么下面的代码可以工作?
Object.prototype.test1=function (){alert(this);};
Object.test1();
对象是普通对象,而不是实例对象。
问题:
- 看来原型(prototype)也适用于非实例对象的方法...
我在 mdn 中找不到对这个确切行为的任何解释。
最佳答案
一般来说这是行不通的。您的代码可以工作,因为您将函数添加到 Object
原型(prototype),并且 Object
是函数,即 Function
的实例,并且“Function.prototype”是对象
关于Javascript 原型(prototype) - 不仅适用于实例对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19608933/