码迷,mamicode.com
首页 > 其他好文 > 详细

原型链

时间:2020-03-09 22:44:55      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:https   open   有一个   返回   alt   sed   person   创建对象   tps   

一、概述

原型链:

        每个对象都可以有一个原型_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
View Code

 

 

参考:

js普通函数与构造函数的区别

JS中的原型和原型链(图解)

 

原型链

标签:https   open   有一个   返回   alt   sed   person   创建对象   tps   

原文地址:https://www.cnblogs.com/shiyun32/p/12452032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!