1. 程式人生 > 其它 >js 原型鏈的繼承

js 原型鏈的繼承

技術標籤:javascriptjavascript

1,js繼承,子函式繼承父函式的屬性和方法,以下例項為組合繼承

關鍵點:

1)利用call得到父函式的例項屬性

2)*子函式的原型為父型別的一個例項物件

3)*子函式原型的constructor修正

<!--
原型鏈+借用建構函式的組合繼承
1. 利用原型鏈實現對父型別物件的方法繼承
2. 利用call()借用父型別構建函式初始化相同屬性
-->
<script type="text/javascript">
  function Person(name, age) {
    this.name = name
    this.age = age
  }
  Person.prototype.setName = function (name) {
    this.name = name
  }

  function Student(name, age, price) {
    Person.call(this, name, age)  // 為了得到屬性
    this.price = price
  }
  Student.prototype = new Person() // 為了能看到父型別的方法
  Student.prototype.constructor = Student //修正constructor屬性
  Student.prototype.setPrice = function (price) {
    this.price = price
  }

  var s = new Student('Tom', 24, 15000)
  s.setName('Bob')
  s.setPrice(16000)
  console.log(s.name, s.age, s.price)

輸出