教程集 www.jiaochengji.com
教程集 >  脚本编程  >  javascript  >  正文 JavaScript创建对象与对象继承参考示例

JavaScript创建对象与对象继承参考示例

发布时间:2015-05-11   编辑:jiaochengji.com
分享下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

您可能感兴趣的文章:
JavaScript创建对象与对象继承参考示例
Javascript 设计模式读书笔记(三)——继承
JS面向对象编程之继承示例代码
javascript的类与继承
解析Javascript继承机制的设计思想
Cocos2d-JS中JavaScript继承
JavaScript中的面向对象(object-oriented)编程
JavaScript继承方式详解
《javascript语言精粹》学习笔记 – 继承
Javascript 面向对象编程之非构造函数的继承

关键词: js对象  js继承   
[关闭]
~ ~