原型和原型链

如何判断一个变量是数组类型

写一个原型链继承的例子

描述new一个对象的过程

zepto(或者其他框架)源码中如何使用原型链

构造函数

原型和原型链

Foo,F是大写的,构造函数首字母大写。所有的引用类型都有构造函数,构造函数就像一个模板

构造函数-扩展

原型和原型链

原型规则和示例

1、所有的引用类型(数组、对象、函数),都具有对象特性,即可*扩展属性(null除外)

原型和原型链

2、所有的引用类型(对象、数组、函数),都有一个_proto_(隐式原型)属性,属性值是一个普通的对象

3、所有的函数,都有一个prototype(显式原型)属性,属性值也是一个普通对象

4、所有的 引用类型(数组函数对象),_proto_(隐式原型)属性值指向它的构造函数的“prototype”属性值

5、当试图得到一个引用类型的某个属性时,如果这个对象本身没有这个属性,呢么会去它的_proto_(即它的构造函数的prototype)中寻找(this指向对象)

原型和原型链

循环对象自身的属性

原型和原型链

hasOwnProperty: 是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
isPrototypeOf : 是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。

原型链

原型和原型链

原型和原型链

instanceof  使用instanceof判断引用类型属于哪个构造函数

原型和原型链

描述new一个对象的过程

1、创建一个新对象

2、this指向这个新对象

3、执行代码,即对this赋值

4、返回this