定义属性与方法
function Person() {
this.name = '张三';
this.age = 12;
this.run = function() {
console.log(this.name + '在运动');
}
}
var p = new Person();
console.log(p.name);
p.run();
类的静态方法
Person.getInfo = () => {
console.log('我是静态方法,使用时不需要new');
}
Person.getInfo();
构造函数和原型链里面增加方法或属性
Person.prototype.sex = '男';
Person.prototype.work = function() {
console.log(this.name + '在工作');
}
console.log(p.sex);
p.work();
继承
- 只使用 对象冒充【不推荐】
不能继承 原型链上的方法或属性,可以继承 构造函数的方法或属性
function Girl() {
Person.call(this);
}
var g = new Girl('张三');
g.run();
function Boy() {
}
Boy.prototype= new Person('张三');
var b = new Boy();
b.run();
b.work();
function YoungPeople(name) {
Person.call(this, name);
}
YoungPeople.prototype = Person.prototype;
var yP = new YoungPeople('年轻人');
yP.run();
yP.work();