关于面向对象javascript的困惑
我正在用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
<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();
我犯了愚蠢的错误。非常感谢。