构造函数
function Foo(name,age) {
this.name = name;
this.age = age
this.class = 'class-1'
}
var f = new Foo('zhangsan',20)
构造函数 - 扩展
- var a = {} 其实是 var a = new Object()的语法糖
- var a = [] 其实是 var a = new Array()的语法糖
- function Foo(){...} 其实是 var Foo = new Function(...)
- 使用 instanceof 判断一个函数是否是一个变量的构造函数.
原型规则和示例
- 所有的引用类型(数组、对象、函数),都具有对象特性,即可自由扩展属性
- 所有的引用类型(数组、对象、函数),都有一个_proto_属性(隐式原型),属性值指向它的构造函数的“prorotype”属性值
- 当试图得到一个对象的某个属性时,如果这个对象本身没有这个属性,那么会去它的_proto_(即它的构造函数的prototype)中寻找
原型链
instanceof 用于判断引用类型属于哪个构造函数的方法