2016-11-30 16 views
1

時には、関数の引数のデフォルト値を定義する2つの方法があります。

最初のものは、そのような引数の値を再定義することである。関数の引数をローカル変数として定義する

var callName1 = function(name) { 
name = name || 'John'; 
console.log('Hello, ' + name); 
}; 

二つ目は、同じ名前のローカル変数を定義することである。この方法の両方が同じ作動さ

var callName2 = function(name) { 
var name = name || 'John'; 
console.log('Hello, ' + name); 
} 


2つの質問があります:
1)2番目の方法で同じ名前のローカル変数を定義するのはどうですか?
2)どちらの方が正しいですか?

+1

'name'が既に関数で定義されており、再定義の必要がないので、最初の方が正しいです。一方、ES6では、 'var callName1 = function(name =" John "){...' – Redu

+0

のようなデフォルトの引数値で両方の使い方を避けることができますが、基本的に違いはありませんが、あなたのコードをいくつかのオプティマイザで変換することができます。 – Dellirium

答えて

6

違いはありません。 varすでに関数にローカルな変数のステートメントは効果がありません。

関連する問題