1: function Person (name,age) {
2: this.name = name;
3: this.age = age;
4: }
5:
6: Person.prototype = {
7: constructor : Person, // 原型{}这种格式得重新定义指向 要不然默认是Object
8: getInfo: function() {
9: return 'A ' + this.name + ' ' + this.age + '.';
10: }
11: };
12:
13: var p = new Person('Lily',18);
14:
15: /**
16: * Person的prototype属性指向Person的prototype对象
17: * Person的实例p的__proto__属性指向Preson的prototype对象
18: * Preson的prototype对象的constructor属性指向Person
19: */
20: console.log(p.constructor); // Person
21: console.log(p.__proto__ == Person.prototype); // true
22: console.log(p.__proto__.constructor == Person); // true p.__proto__ 指向Person的prototype对象 Person的prototype对象constructor属性指向Person构造器
23:
24: //Object.create EcmaScript5 以上有
25: var Person2 = Object.create(p); //复制对象
26: console.log(Person2.name);// Lily
27: Person2.age = 20;
28: console.log(Person2.age);// 20
29: console.log(p.age);// 20
30:
31: var o1 = Object.create({x:1, y:2});
32: var o2 = Object.create(Object.prototype);
33: console.log(o2);
34: console.log(new Object());
1: function Person (name,age) {
2: this.name = name;
3: this.age = age;
4: }
5:
6: Person.prototype = {
7: constructor : Person, // 原型{}这种格式得重新定义指向 要不然默认是Object
8: getInfo: function() {
9: return 'A ' + this.name + ' ' + this.age + '.';
10: }
11: };
12:
13: var p = new Person('Lily',18);
14:
15: /**
16: * Person的prototype属性指向Person的prototype对象
17: * Person的实例p的__proto__属性指向Preson的prototype对象
18: * Preson的prototype对象的constructor属性指向Person
19: */
20: console.log(p.constructor); // Person
21: console.log(p.__proto__ == Person.prototype); // true
22: console.log(p.__proto__.constructor == Person); // true p.__proto__ 指向Person的prototype对象 Person的prototype对象constructor属性指向Person构造器
23:
24: //Object.create EcmaScript5 以上有
25: var Person2 = Object.create(p); //复制对象
26: console.log(Person2.name);// Lily
27: Person2.age = 20;
28: console.log(Person2.age);// 20
29: console.log(p.age);// 20
30:
31: var o1 = Object.create({x:1, y:2});
32: var o2 = Object.create(Object.prototype);
33: console.log(o2);
34: console.log(new Object());