js从隐式、显式原型到原型链的简介

1.隐式原型、显式原型

概念

  1. 每个对象都拥有的属性
  2. 对象隐式原型的值为其对应构造函数显式原型的

例子:
在这里插入图片描述
例子代码:

	  function Fn(){
           //函数内部语句
           //this.prototype={}
            //Fn的显式原型指向一个空对象
       }
       var fn=new Fn();
       //内部语句
       //fn.__proto__=this.prototype
       //对象隐式原型的值为其对应构造函数显式原型的值
       Fn.prototype.test=function() {
           console.log('hello')
       }
       fn.test();
       console.log(Fn.prototype,'\n---------\n',fn);

注意对象的prototype、__proto__属性也是一个对象
当调用fn.test()时会先到Fn的属性中找test方法找不到才回到Fn的显式原型中找test方法
在这里插入图片描述

2.原型链

概念:

简单理解就是原型链是用来查找对象属性的
例子:
在这里插入图片描述
fn在调用test时他会在他的隐式原型链查找test方法是否存在,首先到Fn的隐式原型中查找若没有,再到Object中查找
而Object的–proto–是整个原型链的尽头
注意点:
当设置对象属性值的时候不会去查找原型链。而是直接给对象添加属性,若对象没有该属性
例二:
在这里插入图片描述
整个函数新建时内部原型链的结构简单描述就如上图,可看出Function的隐式原型是等于显示原型的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值