js實現多重繼承
阿新 • • 發佈:2018-12-26
原理: 將父類的例項,賦值給子類的原型和原型上一個屬性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>
列印結果