原型和原型链
如何判断一个变量是数组类型
写一个原型链继承的例子
描述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