-
原型
- JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象;
- 凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象;
- Function Object 也都是通过 New Function()创建的。
- 实例的构造函数属性(constructor)指向构造函数。
function Person(name, age, job) { this.name = name; this.age = age; this.sayName = function() { alert(this.name) } } var person1 = new Person('hello', 22); var person2 = new Person('world', 23); console.log(person1.constructor == Person); //true console.log(person2.constructor == Person); //true //person1 和 person2 都是 构造函数 Person 的实例
- 每个函数对象都有一个
prototype
属性,这个属性指向函数的原型对象 - 每个对象都有 __proto__ 属性,但只有函数对象才有 prototype 属性
- 在默认情况下,所有的原型对象都会自动获得一个
constructor
(构造函数)属性,这个属性(是一个指针)指向prototype
属性所在的函数(Person)