1. 程式人生 > >js實現多重繼承

js實現多重繼承

原理: 將父類的例項,賦值給子類的原型和原型上一個屬性superClass,將子類的例項賦值給孫類的原型和原型上一個屬性superClass。 孫類例項繼承了孫類,子類和父類原型上所有的屬性和方法,並可以通過superClass向上訪問原型鏈,同理,子類例項繼承了子類和父類原型上的屬性和方法,並可以通過superClass訪問子類原型,是不是有點繞,沒關係,下面給出了具體程式碼:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8" />
    <meta name
="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Document</title> </head> <body> <img src="src/img/pic.png"/> <script type="text/javascript"> function Person() {} Person.prototype = { name: 'iwen'
, run: function () { console.log('run') } } function Man() {} Man.prototype = new Person() Man.prototype.superClass = new Person() Man.prototype.name = 'iwen2' Man.prototype.run = function () { console.log('run2') } function Son() {} Son.prototype = new
Man() Son.prototype.superClass = new Man() Son.prototype.name = 'iwen3' Son.prototype.run = function () { console.log('run3') } var child = new Son() console.log(child.superClass) console.log(child.superClass.superClass)
</script> </body> </html>

這裡寫圖片描述
列印結果