function Person() {
this.name = '张三';
this.age = 18;
this.run = function () {
console.log(this.name + '在跑步');
};
}
Person.work = function() {
console.log('这是静态方法');
}
Person.prototype.sex = '男';
Person.prototype.eat = function() {
console.log('这是原型中的方法');
}
Person.work();
var p = new Person();
p.run();
p.eat();
-
继承
- 对象冒充:可以继承构造函数中的方法,但无法继承原型链中的方法
function Person() {
this.name = '张三';
this.age = 18;
this.run = function () {
console.log(this.name + '在跑步');
};
}
Person.prototype.work = function() {
console.log('原型链中的方法');
}
function Web() {
this.demo = 'Hello World';
Person.call(this);
}
var w = new Web();
console.log(w.name);
- 原型链:可以继承原型链中的方法,但实例化的时候,无法给父类传参
function Person() {
this.name = '张三';
this.age = 18;
this.run = function () {
console.log(this.name + '在跑步');
};
}
function Web() {
this.demo = 'Hello World';
}
Web.prototype = new Person();
var w = new Web();
console.log(w.name);
- 原型链 + 对象冒充组合继承
function Person(name, age) {
this.name = name;
this.age = age;
this.run = function () {
console.log(this.name + '在跑步');
};
}
Person.prototype.work = function() {
console.log(this.name + '在工作');
}
function Web(name, age) {
this.demo = 'Hello World';
Person.call(this, name, age);
}
Web.prototype = Person.prototype;
var w = new Web('张三', 18);
w.work();