您的位置
主页 > 网站技术 > 语言编程 > » 正文

JavaScript中创建对象和继承示例解读

来源: 站长圈 点击:

点评:本文主要介绍了JavaScript中怎样创建对象和继承,需要的朋友可以参考下,希望对大家有所帮助!

对象创建: 

当一个函数对象被创建时候,Function构造器产生的函数对象会运行类似这样的代码: 

复制代码 代码如下:

this.prototype={constructor:this}; 

假设函数F 

F用new方式构造对象时,对象的constructor被设置成这个F.prototype.constructor 

如果函数在创建对象前修改了函数的prototype,会影响创建出来对象的construtor属性 

如: 

复制代码 代码如下:

function F(){}; 

F.prototype={constructor:'1111'}; 

var o=new F();//o.constructor===‘1111' true 

继承原理: 

JavaScript中的继承是使用原型链的机制,每个函数的实例都共享构造函数prototype属性中定义的数据,要使一个类继承另一个,需要把父函数实例赋值到子函数的prototype属性。并且在每次new实例对象时,对象的私有属性__proto__会被自动连接到构造函数的prototype。 

instanceof就是查找实例对象的私有prototype属性链来确定是否是指定对象的实例 

具体实例: 

复制代码 代码如下:

//instanceof实现 

function Myinstanceof(obj,type) 

var proto=obj.__proto__; 

while(proto) 

if(proto ===type.prototype)break; 

proto=proto.__proto__; 

return proto!=null; 

function View(){} 

function TreeView(){} 

TreeView.prototype=new View();//TreeView.prototype.__proto__=TreeView.prototype 自动完成 

TreeView.prototype.constructor=TreeView;//修正constructor 

var view=new TreeView();//view.__proto__=TreeView.prototype 自动完成 

alert(view instanceof View); //true 查找到view.__proto__.__proto__时找到 

alert(view instanceof TreeView); //true 查找到view.__proto__时找到 

alert(Myinstanceof(view,View)); //true 

alert(Myinstanceof(view,TreeView)); //true 




首页  - 关于站长圈  - 广告服务  - 联系我们  - 关于站长圈  - 网站地图  - 版权声明