2011-08-02 105 views
2

我在JavaScript中練習面向對象的語法,並遇到一些問題。這是我的代碼:關於面向對象的混淆javascript

<html> 
<head> 
    <script type="text/javascript"> 
      function Name(first,mid,last) { 
       this.first = first; 
       this.middle = mid; 
       this.last = last; 
      } 
      Name.prototype.fullname = function() { 
       return this.first + " " + this.middle + " " + this.last; 
      } 
      Name.prototype.fullnamereversed = function() { 
       return this.last + " " + this.middle + " " + this.first; 
      } 
      var s = new Name("James","Harlow","Smith") 
</script> 
</head> 
<body> 
    <script type="text/javascript"> 
      document.body.innerHTML = s.fullname; 
      document.body.innerHTML = s.fullnamereversed; 
    </script> 
</body> 
</html> 

當網頁加載完畢後,身體的innerHTML是Name.protoype的確切文本(「功能()... this.first + this.middle + this.last ......「)。我在這裏做錯了什麼?

回答

5

你需要調用函數與()操作:

document.body.innerHtml = s.fullname(); 
+0

我的部分愚蠢的錯誤。謝謝。 – dopatraman

2

您分配功能的原型,因此,你需要把它叫爲這樣:

<script type="text/javascript"> 
document.body.innerHTML = s.fullname() + ' ' + s.fullnamereversed(); 
</script> 
+0

這工作,感謝您的幫助。 – dopatraman

2

您需要調用你的函數:document.body.innerHTML = s.fullname();

here

+0

這工作。謝謝您的幫助。 – dopatraman

2

document.body.innerHTML = s.fullname;設置innerHTML來功能s.fullname

如果你想的innerHTML設置爲返回的功能,那麼你需要實際調用該函數是什麼:

document.body.innerHTML = s.fullname(); 
+0

這工作,感謝您的幫助。 – dopatraman