js面向对象-prototype

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js面向对象-prototype相关的知识,希望对你有一定的参考价值。

  在js中每个其实也是一个对象,他们对应的类是Function,每个函数对象都有一个子对象prototype,这个子对象表示了一个类的成员集合,当通过new来实例化一个对象

时,prototype中的成员都会成为实例化对象的成员。如下例子:

function class1(){}

class1.prototype.method=function(){alert("测试");};

class1 cl=new class1();

cl.method();

会弹出提示框“测试”。

由此可以发现,prototype的成员成了cl的成员。

 

但是需要注意的是class1 cl=new class1();这句代码要写在class1.prototype.method之后。

prototype对构造器的引用:

function class1()

{

alert("我是构造函数");

}

class1.prototype.constuctor();

 

在举个例子:

function b(){
this.innerobject="cc";
}
b.staticP="1";
b.prototype.methoned=function () {
};
var newb=new b();
//利用反射来便利newb的成员
for(var j in newb)
{
alert(j+":"+newb[j]);
}
会弹出对话框:
innerobject:cc和
methoned:function(){}
证明,prototype的成员成了b
的成员。
over!!!


 

















以上是关于js面向对象-prototype的主要内容,如果未能解决你的问题,请参考以下文章

JS面向对象组织代码

js面向对象-prototype

深入理解js面向对象中的prototype

js面向对象编程: js类定义函数时prototype和this差别?

js 面向对象

轻松理解JS中的面向对象,顺便搞懂prototype和__proto__的原理介绍