
定義一個函數,傳回這些屬性,就猶如C#中對函數封裝一樣,我們可以對這個函數進行封裝。
一.原型鍊
function Person(n,a){
return {
name : n ,
age : a
}
}
Person.prototype.abc=function(){
console.log("兒子");
}
let person = new Person('張子浩',20);
console.log(person.name);
Person.prototype.abc();
二.Class類
ES6和ES5中有非常多的不相似點,我們慢慢思考
class DBHelper {
constructor() {}
getdate () {
return new Date();
}
}
// 導出内容
// export default DBHelper = DBHelper; // ES6
module.exports = DBHelper; // ES5
通過 module.exports 可以進行公開内容 差不多就pubic。
在第二個class中
// import ZZH from './lei2.js'; // ES6
var ZZH = require('./lei2'); // ES5 require.js
// 在 JS 中 所有的 類 都可以看成是 object 的 子類。
class Person{
// 構造函數
constructor(n,a){
this.name = n;
this.age= a;
}
abc(){
console.log('hehe');
}
}
通過constructor關鍵字可以寫構造函數,我們還可以在類中寫其他的方法.
其中require關鍵字是可以引用别的lei 差不多就是new關鍵字 路徑可以是絕對路徑和相對路徑,我們就可以去調用ZZH中的函數了
三.類的繼承
// 類的繼承
class Student extends Person{
}
let person = new Person('張子浩',20);
console.log(person.name);
let stu = new Student('張建晗',20);
console.log(stu.name);
console.log(typeof (person)); // object
console.log(typeof (stu)); // object
// 擷取對象的 構造函數
console.log(person.constructor);
console.log(stu.constructor);
類的繼承可以通過extends關鍵字,值得思考的是兩者的類型都是object,擷取對象的構造函數可以通過constructor