koa 基礎(十七)原生 JS 中的類、靜態方法、繼承

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

相關文章
相關標籤/搜索