2016-03-19 47 views
-4

如何在JavaScript嚴格模式分配參數名稱如何在javascript嚴格模式下分配參數名稱?

測試代碼:

var func_A = function(arg_A,arg_B,arg_C){ 
    console.log(arg_A,arg_B,arg_C) 
} 
func_A(arg_A = 1,arg_B = 2,arg_C = 0) 

,我也得到警告消息:

ReferenceError: assignment to undeclared variable arg_A 
ReferenceError: assignment to undeclared variable arg_B 
ReferenceError: assignment to undeclared variable arg_C 
+1

我想你想這個:http://stackoverflow.com/questions/11796093/named-parameters-in-javascript,這將意味着這個q問題是重複的。 –

+0

我懂了!感謝您的Commant,Siderite Zackwehdex – Zero0evolution

回答

0

在嚴格模式下不能設置非聲明的變量。

除非你調用函數之前聲明的變量全...在嚴格模式下的代碼將失敗:

var func_A = function(arg_A, arg_B, arg_C) { 
 
    console.log(arg_A, arg_B, arg_C) 
 
} 
 

 
// This what you're missing! 
 
var arg_A, arg_B, arg_C; 
 

 
func_A(arg_A = 1, arg_B = 2, arg_C = 0);

+0

但我希望arg_A,arg_B,arg_C只是func_A中的參數,而不是全局變量。 – Zero0evolution

+0

@ Zero0evolution這裏的問題是你正在創建一個匿名函數,當你使用'a = b'語法設置一個變量時,在非嚴格的JS中,你正在創建新的變量。它們不一定是全局變量。整個變量可以在一個函數體內生存在自己的範圍內... –

+0

@ Zero0evolution現在我看到你已經自動回答你的問題。順便提一下,你的問題與命名參數無關。你問爲什麼你會得到這些錯誤,我給你如何解決它:P –

相關問題