1.app.jsjavascript
/** * 原生 JS 中的類、靜態方法、繼承 * es5中的類和靜態方法 */ function Person(name, age) { // 構造函數裏面的方法和屬性 this.name = name; this.age = age; this.run = function () { console.log(`${this.name} --- ${this.age}`) } } // 原型鏈上面的屬性和方法能夠被多個實例共享 Person.prototype.sex = '男'; Person.prototype.work = function () { console.log(`${this.name} --- ${this.age} --- ${this.sex}`) } // 靜態方法 Person.setName = function () { console.log('靜態方法'); } var p = new Person('zhangsan', '20'); /*實例方法是經過實例化來調用的,靜態是經過類名直接調用*/ p.run(); p.work(); Person.setName(); /*執行靜態方法*/ /** * 繼承 -- 對象冒充繼承和原型鏈繼承 * 對象冒充繼承:無法繼承原型鏈上面的屬性和方法 * 原型鏈繼承:能夠繼承構造函數裏面以及原型鏈上面的屬性和方法,實例化子類的時候沒法給父類傳參 */ function Web(name, age) { Person.call(this, name, age); /*對象冒充實現繼承*/ } Web.prototype = new Person(); /*原型鏈繼承*/ var w = new Web('李四', 20); w.run();
.java