123456789101112131415161718192021222324252627282930313233343536373839 |
- function Person(name,age) {
- this.name = name;
- this.age = age;
- }
- /**
- * 所有构造函数 都有一个prototype属性 这个属性指向它的原型对象
- * 原型对象的特点:声明在原型对象下的属性和方法 都能被实例化对象所共享
- * 属性 构造函数下
- * 方法 原型对象下
- */
- Person.prototype.eat = function() {
- console.log("eat");
- }
- var p1 = new Person();
- p1.eat();
- // 构造函数constructor
- console.log(Person.prototype.constructor);
- /**
- * 继承父类的方法
- * 在子类构造函数里 通过调用父类的.call去继承
- * 子类的继承对象 = new 父类 继承方法
- */
- function fn1(name,age) {
- // this 当前对象
- Person.call(this,name,age)
- }
- /**继承父类的方法 */
- fn1.prototype= new Person();
- fn1.prototype.constructor = fn1;
- var p2 = new fn1("HH",20);
- console.log(p2,'p2');
- p2.eat();
|