1. JavaSrcipt的面向對象編程
JavaScript的面向對象編程和大多數其他語言,如Java、C#的面向對象編程都不太一樣。
在JavaScript中,不區分類和實例的概念,而是通過原型(prototype)來實現面向對象編程。而Java、C#等面向對象編程,是要定義類Class,然後再實例化爲Instance。
1.1 JavaScript創建原型繼承的一種方法:Object.create()
方法傳入一個原型對象,並創建一個基於該原型的新對象。
// 原型對象:
var Student = {
name: '張三',
height: 1.8,
run: function () {
console.log(this.name + ' is running...');
}
};
function createStudent(name) {
// 基於Student原型創建一個新對象:
var objStudent = Object.create(Student);
// 初始化新對象:
objStudent.name = name;
return objStudent;
}
var obj_xiaoming = createStudent('小明');
obj_xiaoming.run();
obj_xiaoming.__proto__ === Student; // true