Javascript 原型(prototype) - 不仅适用于实例对象?

标签 javascript

原型(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/

相关文章:

javascript - 使用 pubnub 流中的 Smoothie 图创建折线图

javascript - 如何从 WordPress 永久链接中提取查询参数以在 JavaScript 中使用?

javascript - 为什么 Internet Explorer 与后退按钮上的预期功能不同

javascript - 我如何等待多个 ajax 调用从 .each 循环完成

javascript - 将 bool 值传递给指令

php - 调用 php 时 Ajax 不工作

javascript - 当用户复制和粘贴文本在 WordPress 中不起作用时链接回网站

javascript - 函数前的加号是什么?

javascript - 将响应式自定义类添加到移动菜单

javascript - KnockoutJS - toJSON 在计算函数中不起作用