2014-10-10 226 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>