Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于面向对象javascript的困惑_Javascript_Oop - Fatal编程技术网

关于面向对象javascript的困惑

关于面向对象javascript的困惑,javascript,oop,Javascript,Oop,我正在用javascript练习面向对象语法,遇到了一些问题。这是我的代码: <html> <head> <script type="text/javascript"> function Name(first,mid,last) { this.first = first; this.middle = mid; this.last = last

我正在用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>

函数名(第一、中间、最后){
this.first=first;
this.middle=mid;
this.last=last;
}
Name.prototype.fullname=函数(){
返回this.first+“”+this.middle+“”+this.last;
}
Name.prototype.fullnamereversed=函数(){
返回this.last+“”+this.middle+“”+this.first;
}
var s=新名称(“詹姆斯”、“哈洛”、“史密斯”)
document.body.innerHTML=s.fullname;
document.body.innerHTML=s.fullnamereversed;

当我加载页面时,主体的innerHTML就是Name.protype(“function()…this.first+this.middle+this.last…”的确切文本。我做错了什么?

您正在为原型分配一个函数,因此需要这样调用它:

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

document.body.innerHTML=s.fullname()+“”+s.fullname();

您需要调用函数:
document.body.innerHTML=s.fullname()


示例。

您需要使用()运算符调用函数:

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

document.body.innerHTML=s.fullname
将innerHTML设置为函数
s.fullname

如果要将innerHTML设置为函数返回的内容,则需要实际调用函数:

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

我犯了愚蠢的错误。非常感谢。