在JavaScript中,不区分类和实例的概念,而是通过原型(prototype)来实现面向对象编程
//原型对象
var Student = {
name: 'xingming',
heihgt: 1.8,
run: function() {
console.log(this.name + 'is flying...');
}
};
function createStudent(name) {
// 基于Student原型创建一个新对象
var s = Object.create(Student); // 初始化新对象
s.name = name;
return s;
}
var xiaoming = createStudent('小明');
xiaoming.run();//小明 is flying
xiaoming.__proto__ === Student;//true
基于Student原型创建的新对象createStudent 继承了原型对象Student的属性run,
下边声明的变量在得到实参之后就可以继承run的属性,所以当xiaoming调用的时候,
是可以获取到 Student里边的run属性,体现了所谓的继承关系就是将一个函数的原型
指向另一个函数