2011-08-02 104 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