Javascript原型-不仅适用于实例对象?
原型在整个JavaScript中都被用作一种方便的定义方法 将自动应用于的实例的属性和功能 对象 所以如果我写下这个:Javascript原型-不仅适用于实例对象?,javascript,Javascript,原型在整个JavaScript中都被用作一种方便的定义方法 将自动应用于的实例的属性和功能 对象 所以如果我写下这个: function Ninja(){} Ninja.prototype.swingSword = function(){ return true; }; var ninja1 = Ninja(); 然后,所有忍者都会有这个方法 但是如果只是针对实例对象,为什么下面的代码可以工作 Object.prototype.test1=function (){alert(this)
function Ninja(){}
Ninja.prototype.swingSword = function(){
return true;
};
var ninja1 = Ninja();
然后,所有忍者都会有这个方法
但是如果只是针对实例对象,为什么下面的代码可以工作
Object.prototype.test1=function (){alert(this);};
Object.test1();
对象是普通对象,而不是实例对象
问题:
- 似乎原型也适用于非实例对象的方法
我在mdn中找不到任何关于该确切行为的解释。当您扩展
对象的原型时,您添加的属性可用于所有对象,因为它是所有JS对象的根:
Object.prototype.test1 = function(){ console.log('test1') };
({}).test1(); // logs test1
(new Image()).test1(); // logs test1
和所有构造函数一样,对象
,也是一个函数。JavaScript中的函数是一个对象 扩展对象的原型时,添加的属性可用于所有对象,因为它是所有JS对象的根:
Object.prototype.test1 = function(){ console.log('test1') };
({}).test1(); // logs test1
(new Image()).test1(); // logs test1
和所有构造函数一样,对象
,也是一个函数。JavaScript中的函数是一个对象 扩展对象的原型时,添加的属性可用于所有对象,因为它是所有JS对象的根:
Object.prototype.test1 = function(){ console.log('test1') };
({}).test1(); // logs test1
(new Image()).test1(); // logs test1
和所有构造函数一样,对象
,也是一个函数。JavaScript中的函数是一个对象 扩展对象的原型时,添加的属性可用于所有对象,因为它是所有JS对象的根:
Object.prototype.test1 = function(){ console.log('test1') };
({}).test1(); // logs test1
(new Image()).test1(); // logs test1
和所有构造函数一样,对象
,也是一个函数。JavaScript中的函数是一个对象 一般来说,这不起作用。您的代码可以工作,因为您将函数添加到对象
原型,而对象
是函数,即函数
的实例,而“function.prototype”是对象
的实例,通常这不起作用。您的代码可以工作,因为您将函数添加到对象
原型,而对象
是函数,即函数
的实例,而“function.prototype”是对象
的实例,通常这不起作用。您的代码可以工作,因为您将函数添加到对象
原型,而对象
是函数,即函数
的实例,而“function.prototype”是对象
的实例,通常这不起作用。您的代码可以工作,因为您向对象
原型添加了函数,对象
是函数,即函数
的实例,“Function.prototype”是Object
的一个实例,如果尝试使用其他构造函数,除了Object
和Function
之外,如果是这样的话-你能告诉我-为什么在这一个中我看不到警报,而在一个中-我确实看到了警报?如果我通过新建一个函数来创建一个实例-它应该转到function.prototype…否?如果尝试使用除Object
和function
之外的其他构造函数,如果是这样-你能告诉我-为什么我在其中没有看到警报,而在其中-我确实看到了警报?如果我通过新建一个函数来创建一个实例-它应该转到function.prototype…否?如果尝试使用除Object
和function
之外的其他构造函数,如果是这样-你能告诉我-为什么我在其中没有看到警报,而在其中-我确实看到了警报?如果我通过新建一个函数来创建一个实例-它应该转到function.prototype…否?如果尝试使用除Object
和function
之外的其他构造函数,如果是这样-你能告诉我-为什么我在其中没有看到警报,而在其中-我确实看到了警报?如果我通过新建一个函数来创建一个实例-它应该转到function.prototype…否?如果没有其他人这样做,我会在有时间时尝试将其扩展为一个答案,但您有两个不同的属性。函数有一个prototype
属性,当使用new
调用函数时使用该属性;所有对象都有一个内部的[[Prototype]]
属性,这是用来查找属性的。如果没有其他人这样做,我会在有时间时尝试将其扩展为一个答案,但您有两个不同的属性。函数有一个prototype
属性,当使用new
调用函数时使用该属性;所有对象都有一个内部的[[Prototype]]
属性,这是用来查找属性的。如果没有其他人这样做,我会在有时间时尝试将其扩展为一个答案,但您有两个不同的属性。函数有一个prototype
属性,当使用new
调用函数时使用该属性;所有对象都有一个内部的[[Prototype]]
属性,这是用来查找属性的。如果没有其他人这样做,我会在有时间时尝试将其扩展为一个答案,但您有两个不同的属性。函数有一个prototype
属性,当使用new
调用函数时使用该属性;所有对象都有一个内部[[Prototype]]
属性,用于查找属性。