2014-10-10 238 views
0

我正在学习javascript,遇到这个问题,我想将对象和函数结合起来。根据我的说法,我有以下几点可以导致65岁 - 我插入的年龄。但是我什么也没得到。Javascript函数不能正常工作

有关我在做什么错误的任何想法?

<script type="text/javascript"> 

function person(name, age) { 

this.name = name; 
this.age = age; 
this.yearsUntilRetire = yearsLeft; 


} 


function yearsLeft { 

var numYears = 65 - this.age; 
return numYears; 

} 

var Marc = new person("Marc", 23); 
document.write(Marc.yearsUntilRetire()); 



</script> 
+1

提示:创建多个实例时 – Johan 2014-10-10 13:24:16

+1

你的变量名的外壳应该是倒退的功能添加到这个人的原型,以提高性能:'VAR马克=新的Person()' – Bergi 2014-10-10 13:24:36

回答

1

你忘了()在yearsLeft宣言!

<script type="text/javascript"> 

function person(name, age) { 

this.name = name; 
this.age = age; 
this.yearsUntilRetire = yearsLeft; 


} 


function yearsLeft() { 

var numYears = 65 - this.age; 
return numYears; 

} 

var Marc = new person("Marc", 23); 
document.write(Marc.yearsUntilRetire()); 

2

你只是缺少括号中的函数声明:

function yearsLeft() { 

要修正这种错误,你必须看看在控制台中的错误。显示出现语法错误的行。

推荐阅读:Chrome Developer Tools

+0

感谢,会考虑它± – user3706202 2014-10-10 16:01:39

0

可能有两个错误,如果你看看你的控制台,它可能是你以后yearsleft函数声明立即失踪()。并且您正试图写出Marc.yearsUntilRetire()而不是Marc.yearsUntilRetire。我认为yearsUntilRetire是一个变量,它需要从yearsLeft返回的年数而不是函数。

<script type="text/javascript"> 

function person(name, age) { 

this.name = name; 
this.age = age; 
this.yearsUntilRetire = yearsLeft; 


} 


function yearsLeft { 

var numYears = 65 - this.age; 
return numYears; 

} 

var Marc = new person("Marc", 23); 
document.write(Marc.yearsUntilRetire()); 



</script>