任何人都可以請幫助下面的代碼。我想了解多重繼承不知道爲什麼它不工作。順便說一句,如果代碼爲多重繼承。謝謝Javascript多繼承
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Test Doc</title>
<script type="text/javascript">
function classX(){
this.messageX="this is X Message";
this.alertX=function(){
alert(this.messageX);
};
}
function classY(){
this.messageY="this is Y Message";
this.alertY=function(){
alert(this.messageY);
};
}
function classZ(){
classX.apply(this);
classY.apply(this);
this.messageZ="this is Z Message";
this.alertZ=function(){
alert(this.messageZ);
};
}
var abjz=new classZ();
objz.alertZ();
abjz.alertX();
</script>
</head>
<body>
</body>
</html>
我可能完全脫離了這裏的基礎,但是你不會想申請'arguments'而不是'this'嗎? (或者甚至可以使用'call'而不是'apply') –
他/她想讓「classX」和「classY」函數在與「classZ」構造函數中的新對象相同的上下文中操作。 「apply()」的第一個參數是要使用的上下文對象('this'值)。 – Pointy
我爲此編寫了一個模塊,可以從npm https://npmjs.org/package/nmix或github https://github.com/topcloudsystems/nmix下載它。如果你想了解它背後的基本原理的更多信息,請查看我的博客:http://ncombo.wordpress.com/2012/12/29/javascript-multiple-inheritance/ – Jon