day25 原型链

原型链的构成

通过__proto__连接成原型链:
Grand.prototype.proto --> Object.prototype(对象的最终原型).proto -->null

Grand.prototype.lastName = "Deng";
function Grand (){}
var grand = new Grand();

Father.prototype  = grand;
function Father(){
 	this.name = "GT";
 	this.num = 100;	
 	this.fortune = {
		card1:"100"
	};
	
 }
var father = new Father();

Son.prototype = father;
function Son(){
	this.hobbit ="smoke";
}
var son = new Son();

原型链上属性的增删改查

增删改查和原型一样,只能自己调用修改。
特殊点:

delete son.fortune.card1;
son.fortune.card2 = "200";
--> 相当于调用引用值,调用父级的属性再加以覆盖,还是相当于父级自己增删改
son.num ++;
father.num --> 100
son.num -->101// 取父亲原型上的num加1,赋给自身,相当于自己增加了num属性。
Person.prototype = {
	height:100
}
function Person(){
	this.eat = function(){
		this.height ++;
	}
}
var person = new Person();
//调用原型上的100加1,赋值给自身一个新的height:101。

绝大多数对象的最终都会继承自Object.prototype

1、undefined /null 是原始值,也不能进行包装类,没有原型
2、var obj = Object.create(null);//这个对象没有原型

  • 假设手动给创建的对象加上“原型”:
obj.__proto__ = {
    name:"lgt"
}
obj.name--> undefined
  • 手动的添加__proto__相当于给对象加了一个属性,但不是原型。而加的这个属性是一个对象,该对象有自己的原型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值