javascript考点 —— 原型链

一、创建对象有几种方法

//方式一:字面量
var o1 = {name: 'o1'};
var o11 = new Object({name:'o11'})

//方式二:通过构造函数
var M = function(name){this.name = name}
var o2 = new M('o2');

//方式三:
var P = {name: 'o3'};
var o3 = Object.create(P)

二、原型、构造函数、实例、原型链

javascript考点 —— 原型链_第1张图片

三、instanceof的原理

javascript考点 —— 原型链_第2张图片

实例对象是判断实例对象的_proto_和构造函数的prototype是不是引用的同一个对象。可以用constructor来判断实例对象是哪个构造函数的实例对象。

四、new运算符

javascript考点 —— 原型链_第3张图片

new运算符背后的原理:

var new2 = function(func){
    var o = Object.create(func.prototype);
    var k = func.call(o);
    if(typeof k === 'object'){
        return k;
    } else {
        return o
    }
}

 

你可能感兴趣的:(javascript)