构造函数
1 | //构造函数命名时,首字母要大写 |
描述 new 一个对象的过程
- 创建一个新对象
- this 指向这个新对象
- 执行代码,即对this 赋值
- 返回this
原型规则
1、所有的引用类型(数组、对象、函数),都具有对象特性,即可自由扩展属性(除了“null”意外)。
1 | var obj = {}; obj.a = 100; |
2、所有的引用类型(数组、对象、函数),都有一个_proto_属性(隐式原型),属性值是一个普通的对象。
1 | console.log(obj._proto_); |
3、所有的函数,都有一个prototype属性(显示原型),属性值也是一个普通的对象。
1 | console.log(fn.prototype) |
4、所有的引用类型(数组、对象、函数),_proto属性值指向它的构造函数的”prototype”属性值。
1 | console.log(obj._proto_ === Object.prototype) |
5、当试图得到一个引用类型(数组、对象、函数)的某个属性时,如果这个引用类型本身没有这个属性,那么会去它的__proto_(即它的构造函数的prototype)中寻找。

1 | function Foo(name, age) { |
循环对象自身的属性
1 | var item |
如何准确判断一个变量是数组类型
1 | var arr = [] |
原型链继承的例子
1 | // 写一个封装DOM查询的例子 |