1. 程式人生 > 實用技巧 >js-高階03-面向物件的繼承

js-高階03-面向物件的繼承

如何實現繼承
利用原型實現繼承
即我們可以改變一個建構函式的prototype指向,來完成繼承。
建構函式來實現
下面中就利用了call或者apply來改變this指向的方式來實現()
物件/函式.call(this,引數)
物件/函式.apply(this,[引數])
拷貝實現
function Person (name, age) {
  this.type = 'human'
  this.name = name
  this.age = age
}
Person.prototype.sayName = function () {
  console.log('hello ' + this.name)
}
function Student (name, age) { //改變了自己的this的指向 Person.call(this, name, age) } // 原型物件拷貝繼承原型物件成員 for(var key in Person.prototype) { Student.prototype[key] = Person.prototype[key] } var s1 = Student('張三', 18) s1.sayName() // => hello 張 函式內 this 指向的不同場景 函式的呼叫方式決定了 this 指向的不同: 呼叫方式 非嚴格模式 備註 普通函式呼叫 window 嚴格模式下是 undefined 建構函式呼叫 例項物件 原型方法中
this 也是例項物件 物件方法呼叫 該方法所屬物件 緊挨著的物件 事件繫結方法 繫結事件物件 定時器函式 window