JavaScript中创建对象和继承示例解读
2014-02-12 00:00
656 查看
对象创建:
当一个函数对象被创建时候,Function构造器产生的函数对象会运行类似这样的代码:
假设函数F
F用new方式构造对象时,对象的constructor被设置成这个F.prototype.constructor
如果函数在创建对象前修改了函数的prototype,会影响创建出来对象的construtor属性
如:
继承原理:
JavaScript中的继承是使用原型链的机制,每个函数的实例都共享构造函数prototype属性中定义的数据,要使一个类继承另一个,需要把父函数实例赋值到子函数的prototype属性。并且在每次new实例对象时,对象的私有属性__proto__会被自动连接到构造函数的prototype。
instanceof就是查找实例对象的私有prototype属性链来确定是否是指定对象的实例
具体实例:
当一个函数对象被创建时候,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高级程序设计一书----关于创建和对象继承的总结
- JavaScript2种构造函数创建对象的模式以及继承的实现
- JavaScript对象创建与继承总结
- javascript的函数、创建对象、封装、属性和方法、继承
- JavaScript创建对象与继承
- javascript _call2创建对象实现继承
- JavaScript之对象实例的创建和继承
- JavaScript构造函数+原型创建对象,原型链+借用构造函数模式继承父类练习
- JAVASCRIPT 对象的创建和对6种继承模式的理解和遐想
- javascript创建createXmlHttpRequest对象示例代码
- javascript(js)创建对象的模式与继承的几种方式
- javascript创建对象,以及实现继承的方法
- JavaScript关于创建对象和继承的一些总结
- Java程序员从笨鸟到菜鸟之(二十九)javascript对象的创建和继承实现
- 从0开始学react netive:2.Javascript创建对象的方式_prototype原型的概念_原型继承
- JavaScript对象创建及继承原理实例解剖
- JavaScript对象的创建和继承实现
- javascript 创建对象与继承总结和回顾
- JavaScript对象创建及继承原理实例解剖