js中继承知识

1.理论摘要:

  js继承:

  每个javascript对象都包含着对另一个对象(原型对象)的内部引用。原型对象的任何属性,表现为每个以它为原型的对象的属性。

javascrpt对象从它的原型哪里继承属性。

 

 

 

2.理解new运算符:

  1.使用new运算符来创建一个空对象,然后把构造函数作为这个对象的一个方法来调用。

  2.创建了一个空对象之后,new运算符设置了这个对象的原型。一个对象的原型就是它的构造函数的prototype属性值。

 

 

3.函数:

  所有的函数都有一个prototype属性,当这个函数被定义的时候,prototype属性自动创建和初始化。prototype属性的初始化值是一个对象,这个对象只带有一个属性,这个属性名为constructor,它指回到和原型相关联的那个构造函数。

这就是每个对象都有一个constructor属性的原型。

添加给这个原型对象的任何属性,都会成为被构造函数所初始化的对象的属性。

 

构造函数初始化的每个对象都确实从原型哪里继承了完全相同的一组属性。原型对象是放置方法和其他不变属性的理想地方。

 

理解对象如何继承prototype原型对象的属性的:

   "继承作为查找一个属性值的过程的一部分自动发生"。

属性并非从原型对象复制到新对象,它们只是像那些对对象的属性一样出现。

这有两个重要的含义:

   1.使用原型对象可以显著地减少每个对象所需的内存数量,因为对象可以继承原型的很多属性。

   2.即便是在对象创建以后才添加到原型中的属性,对象也可以继承它。

可以使用for/in循环来枚举获得从prototype对象继承的属性。

 

 

<script type="text/javascript">

var myObj = new function() {

var a = 1;

}

//alert(myObj);//output [object object]

//alert(myObj.a);//output  undefined

var myObj1 = new function() {

var a = 1;

return 1;

}

//alert(myObj1);//output [object object]

//alert(myObj1.a);//output undefined

var myObj2 = new function() {

this.a = 1;

return this.a;

}

//alert(myObj2);//output [object object]

//alert(myObj2.a);//output 1

alert(myObj2.constructor);

var myObj3 = new function() {

alert('1');// output 1

}

alert(myObj3.constructor);

 

</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值