そのような状況に遭遇して、パラメーターなしで関数を作成したことがありますか?
function showUserInfo(){ alert("你好!我是小明。"); } function showUserInfo(){ alert("你好!我是小明。"); }
電話:
showUserInfo(); showUserInfo();
後で、この関数が他の場所でも必要であることがわかりましたが、いくつかの変数値が関数内にハードコーディングされていました。どうすればよいでしょうか?パラメータを追加します。
function showUserInfo(name){ name=name||"小明"; alert("你好!我是"+name+"。"); } function showUserInfo(name){ name=name||"小明"; alert("你好!我是"+name+"。"); }
説明: name=name||"Xiao Ming" このコードは、name が null の場合、デフォルト値 "Xiao Ming" と等しいことを意味します。次のように書くこともできます:
function showUserInfo(name){ // name=name||"小明"; if(!name){ name="小明"; } alert("你好!我是"+name+"。"); } function showUserInfo(name){ // name=name||"小明"; if(!name){ name="小明"; } alert("你好!我是"+name+"。"); }
電話:
showUserInfo('小李'); showUserInfo('小李');
その後、ニーズが変化し、年齢を追加する必要がありました。さて、変更しましょう:
function showUserInfo(name,age){ name=name||"小明"; age=age||22; alert("你好!我是"+name+",今年"+age+"岁。"); } function showUserInfo(name,age){ name=name||"小明"; age=age||22; alert("你好!我是"+name+",今年"+age+"岁。"); }
電話:
showUserInfo('小李');//结果:你好!我是小李,今年22岁。 showUserInfo('小李',19);//结果:你好!我是小李,今年19岁。 showUserInfo(null,19);//结果:你好!我是小明,今年19岁。 showUserInfo('小李');//结果:你好!我是小李,今年22岁。 showUserInfo('小李',19);//结果:你好!我是小李,今年19岁。 showUserInfo(null,19);//结果:你好!我是小明,今年19岁。
では、誕生日、電話番号、性別、QQ などのパラメータを追加する必要がある場合はどうすればよいでしょうか?デフォルト値を1つずつ設定しますか?実際、これをやっている人をたくさん見かけます。より簡単な方法を見てみましょう。それは、Jquery拡張機能を使用することです。まずコードを見てみましょう:
function showUserInfo(setting){ var defaultSetting={ name:"小明", age:"22", sex:"男", phone:"13888888888", QQ:"12345678", birthday:"1980.12.29" }; $.extend(defaultSetting,settings); var message='姓名:'+defaultSetting.name +',性别:'+defaultSetting.sex +',年龄:'+defaultSetting.age +',电话:'+defaultSetting.phone +',QQ:'+defaultSetting.QQ +',生日:'+defaultSetting.birthday +'。'; alert(message); } function showUserInfo(setting){ var defaultSetting={ name:"小明", age:"22", sex:"男", phone:"13888888888", QQ:"12345678", birthday:"1980.12.29" }; $.extend(defaultSetting,settings); var message='姓名:'+defaultSetting.name +',性别:'+defaultSetting.sex +',年龄:'+defaultSetting.age +',电话:'+defaultSetting.phone +',QQ:'+defaultSetting.QQ +',生日:'+defaultSetting.birthday +'。'; alert(message); }
説明: $.extend(defaultSetting,settings) の機能は、受信した設定構成を defaultSetting とマージし、defaultSetting 構成を設定内の構成で上書きすることです。
電話:
showUserInfo({ name:"小李" }); //结果:姓名:小李,性别:男,年龄:22,电话:13888888888,QQ:12345678,生日:1980.12.29。 showUserInfo({ name:"小红", sex:"女", phone:"13777777777" }); //结果:姓名:小红,性别:女,年龄:22,电话:13777777777,QQ:12345678,生日:1980.12.29。 showUserInfo({ name:"小李" }); //结果:姓名:小李,性别:男,年龄:22,电话:13888888888,QQ:12345678,生日:1980.12.29。 showUserInfo({ name:"小红", sex:"女", phone:"13777777777" }); //结果:姓名:小红,性别:女,年龄:22,电话:13777777777,QQ:12345678,生日:1980.12.29。
とても簡単です!このように、パラメータが 100 個あっても怖くありません。
では、複数のパラメーターをいつ使用するのか、またそのようなパラメーター オブジェクトをいつ使用するのか?私の経験では、実際のニーズに応じて、1 つまたは 2 つのパラメーターを使用できる場合は、パラメーター オブジェクトは使用されません。 3 つ以上ある場合は、このパラメータ オブジェクトを使用します。