原型链详细讲解

面试中若是问到原型链,应该从以下四个方面进行考虑:

1  创建对象有几种方法

2 原型,构造函数,实例,原型链

3 instanceof的原理

4 new 运算符

A:首先从创建对象有几种方法进行讲解:通常有这四种方法创建对象

(1)字面量直接创建对象(2)new OBject一个对象(3)函数构造new出一个对象(4)通过Object.creat创建一个对象

B:原型,构造函数,实例,原型链 对应的图解如下:

理解概念问题:

构造函数:只要是被new使用了的函数,都被称之为构造函数

实例:new出来的结果,称之为实例

原型对象通过构造器constructor来区分是被哪个构造函数来进行引用

函数在创建的时候,js会默认给函数一个prototype属性

原型链的实现原理: 假如现在有一个函数M,现需要给M增加一个say方法,若是直接在M函数中进行声明this.say = say,则在构造实例的时候,都会进行copy创建一次say,这会增加内存的使用。因此可以考虑在M函数的原型prototype上增加say方法,提供给创建的实例进行使用。在实例进行调用此方法时,会通过原型一层层去进行寻找。

var M=function(name){this.name = name};   var o3 = new M();

通过 M.prototype.say = function(){console.log('hello world')}进行增加say方法,,o3.say()即可进行调用;

注意:只有实例对象有__proto__属性,,(function函数也算是一个对象,所以M.__proto__==Function.prototype,M是Function函数的实例对象)

C:原型链上instanceof的理解:

未完,待续,临时有事,还请谅解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值