1

《javascript高级程序设计》笔记:原型图解
《javascript高级程序设计》笔记:继承
JS原型链与继承别再被问倒了

图解原型和原型链
JS基础-原型、原型链真的不能一知半解

prototype原型对象构造函数才有
proto隐式原型普通对象(实例化后的对象,new之后的对象,)才有
constructor构造函数

1 普通对象的_proto_指向函数的protorype

var arr = new Array()
arr._proto_ === Array.prototype

2 constructor指向构造当前对象的构造函数

function Foo(name){
    this.name = name
}
var foo = new Foo('陌上寒')

//foo.constructor === Foo  true

3 原型对象中的constructor指向该原型对应的构造函数

function Foo(name){
    this.name = name
}
var foo = new Foo('陌上寒')

//Foo.prototype.constructor === Foo  true

new

var b = new B('testb')

var o = new Object()
o._proto_ = B.prototype
B.call(o)
var b = o

首先创建一个空的对象,空对象的__proto__属性指向构造函数的原型对象
把上面创建的空对象赋值构造函数内部的this,用构造函数内部的方法修改空对象
如果构造函数返回一个非基本类型的值,则返回这个值,否则上面创建的对象

面试相关问题:
new的过程
instanceof
hasOwnProperty()方法与in操作符
创建对象有几种方法,什么是原型 构造函数 实例 原型链,instanceof的原理,new运算符的工作原理

结果值比较


guona
54 声望11 粉丝