原型链
Posted shiyun32
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原型链相关的知识,希望对你有一定的参考价值。
一、概述
原型链:
每个对象都可以有一个原型_proto_,这个原型还可以有它自己的原型,以此类推,形成一个原型链。查找特定属性的时候,我们先去这个对象里去找,如果没有的话就去它的原型对象里面去,如果还是没有的话再去向原型对象的原型对象里去寻找...... 这个操作被委托在整个原型链上,这个就是我们说的原型链了。
构造函数:
采用new关键字调用,eg: let p = new Person(),调用函数时会创建对象,函数内部this指向创建的对象p,默认返回新创建的实例对象。
普通函数:
直接调用 let p = cat(),调用函数时不会创建对象,函数内部指向调用它的对象,没有指明调用对象,则指向window,没有返回值。
二、使用
1. 构造函数指向

function foo() { var f2 = new foo2(); //使用构造函数调用foo2() ,f2中为foo2()的返回值 f2.name = ‘李一桐‘ console.log(f2); // {a: 3, name: "李一桐"} console.log(this); //在foo中未指明调用对象,则this 指向 window return true; } function foo2() { console.log(this);// 在foo()中进行了实例化,this指向 foo2的实例对象 foo2 {} return {a: 3}; } var f1 = foo(); //使用普通函数调用foo(),f1存储返回值 console.log(f1);// true
参考:
JS中的原型和原型链(图解)
以上是关于原型链的主要内容,如果未能解决你的问题,请参考以下文章