《javascript高级程序设计》笔记:原型图解
《javascript高级程序设计》笔记:继承
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运算符的工作原理
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。