2014-05-12 107 views
0

我試圖定義具有4種不同屬性 - 速度,標題,功率和準確度的團隊。然後,我想查找這4個屬性的平均值,但出於某種原因,當我嘗試這樣做時,或者在屬性之間執行任何數學運算時,該程序返回未定義。有任何想法嗎?代碼使用參數計算JavaScript函數內的平均值

team1 = new team ("Manchester United"); 
team2 = new team ("Arsenal"); 
team3 = new team ("Chelsea"); 
team4 = new team ("New York Rangers"); 

function soccerGame (team1, team2, team3, team4) { 

var team = function(teamName) { 
    this.teamName = teamName; 
    this.speed = Math.floor(Math.random() * 10) + 1 ; 
    this.header = Math.floor(Math.random() * 10) + 1 ; 
    this.power = Math.floor(Math.random() * 10) + 1 ; 
    this.accuracy = Math.floor(Math.random() * 10) + 1 ; 
    console.log(this.accuracy + this.power + this.header + this.speed)/4; 
}; 
} 

回答

0
var team = function(teamName) { 
    this.teamName = teamName; 
    this.speed = Math.floor(Math.random() * 10) + 1 ; 
    this.header = Math.floor(Math.random() * 10) + 1 ; 
    this.power = Math.floor(Math.random() * 10) + 1 ; 
    this.accuracy = Math.floor(Math.random() * 10) + 1 ; 
    console.log(this.accuracy + this.power + this.header + this.speed)/4; 
}; 


team1 = new team ("Manchester United"); 
team2 = new team ("Arsenal"); 
team3 = new team ("Chelsea"); 
team4 = new team ("New York Rangers"); 

team功能和機務佈局很重要。

Working Demo

+0

訂單僅很重要,因爲正在使用的功能表達。如果OP使用函數聲明,則無關緊要(但如果函數聲明是第一個函數聲明,它仍然會更好)。 – RobG

+0

我的意思是'var team = function(team)'應該放在'soccerGame'函數之外。這是我的代碼的意義。 – jhyap

+0

好的。你可能已經猜到了我不喜歡使用函數表達式來使用函數聲明。 ;-) – RobG

1

你唯一的問題是,你有你的構造包裹在soccerGame,使其成爲一個局部變量。局部變量只能在函數的範圍內訪問。您有兩種選擇:將team聲明放入soccerGame函數中,或者刪除函數並實現您打算在其他地方執行的操作。如果你在函數中定義了team,你不能通過團隊,所以我會推薦第二個選項。

Demo