对于js原型和原型链继承的简单理解(第二种,对象冒充)

关键代码    this.parent = Cat;    this.parent.apply(this);

 1              function Cat(){
 2                  this.climb = function(){
 3                      alert("我会爬树");
 4                  }
 5              }
 6              var cat  = new Cat();
 7              cat.climb();
 8              
 9              function Dog(){
10                  this.parent = Cat;
11                  this.parent.apply(this);//当然也可以传参,
12                  this.eat = function(){
13                      alert("我会吃");
14                  }
15              }
16              var dog = new Dog();
17              console.log(dog)
18              dog.climb();

 

会输出两个我会爬树,这应该就是所谓的对象冒充吧,Dog通过parent切切实实的拥有了爬树的climb方法

 

与原型链的区别就是:原型链是顺着链进行查找这个方法,而对象冒充是拥有了这个方法

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。