《学习日记》---javascript的原型链理解

首先创建一个JS对象的两种方法:

一、普通对象(字面式):var person = {name:haha,age:20,getName:function(){return this.name}};

二、函数对象(构造器):function person(name,age){this.name = name,this.age = age};   person.prototype={getAge:function(){return this.age}};  var  parents = new person() 


区别:

普通对象只有__proto__属性,而函数对象有原型属性prototype,因此普通对象是不可以被继承的,而函数对象是可以被继承的。

__proto__属性:是指向原型对象prototype属性

prototype属性:存在于堆空间中,是一个对象,相当于构造器,构造器里面包含了这个对象的属性和方法,所有由这个对象创建的对象都会继承这个对象的方法

举个例子:var p1 = new person();

p1.getAge()//调用的是person.prototype中的方法。


JS实现继承的方式:原型链

 var p = new person(); 
 console.log( p.__proto__ === Person.prototype );//true

 console.log( Person.prototype.__proto__ === Object.prototype ); //true

 console.log( Person.__proto__ === Function.prototype );//true
PS:
每次给对象的属性赋值时,都会在原型链中寻找第一个匹配这个属性的对象然后赋值,其余之后的对象会被隐式隐藏掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值