面向对象编程
由于js没有类与实例的概念,创建对象一般可以用
var Student = {
name: 'Robot',
height: 1.2,
run: function () {
console.log(this.name + ' is running...');
}
};
var xiaoming = {
name: '小明'
};
xiaoming.__proto__ = Student;
xiaoming.run()
__proto__相当于使xiaoming继承Student,并集成了Student中的默认值。
构造函数
function Student(props) {
this.name = props.name || '匿名'; // 默认值为'匿名'
this.grade = props.grade || 1; // 默认值为1
this.hello = function(){
console.log('hello');
}
}
var xiaoming = new Student({
name: '小明'
});
若使用new,则函数被视为构造函数,参数一般传入一个props对象或多个普通参数,||的作用的默认值。
class
在最新的标准可以通过class来构造对象了
class PrimaryStudent extends Student {
//构造函数
constructor(name, grade) {
super(name); // 记得用super调用父类的构造方法!
this.grade = grade;
}
//注意不用加function
myGrade() {
alert('I am at grade ' + this.grade);
}
}