Ruby、CoffeeScript、今後の JavaScript バージョンなどの一部の言語では、関数を定義するときに次のようにデフォルトのパラメーターを宣言できます。
function myFunc(param1, param2 = "2 番目の文字列") {
console.log(param1, param2);
}
// 出力: "最初の文字列" と "2 番目の文字列"
myFunc("最初の文字列");
// 出力: "最初の文字列" と "2 番目の文字列バージョン 2"
myFunc("最初の文字列", "2 番目の文字列バージョン 2");
残念ながら、現在のバージョンのJavaScriptではこの書き方は無効です。では、既存のツールセットを使用してこれを達成するにはどうすればよいでしょうか?
最も簡単な解決策は次のとおりです:
function myFunc(param1, param2) {
If (param2 === 未定義) {
param2 = "2 番目の文字列";
}
console.log(param1, param2);
}
// 出力: "最初の文字列" と "2 番目の文字列バージョン 2"
myFunc("最初の文字列", "2 番目の文字列バージョン 2");
実際には、省略されたパラメータはアクセス時に常に「未定義」になります。パラメータが 1 つしかない場合、これは良い解決策ですが、複数ある場合はどうなるでしょうか?
複数のパラメータがある場合は、オブジェクトをパラメータとして使用できます。これには、各パラメータに明確な名前があるという利点があります。オブジェクトパラメータを渡す場合、同じ方法でデフォルト値を宣言できます。
function myFunc(paramObject) {
vardefaultParams = {
param1: "最初の文字列",
param2: "2 番目の文字列",
param3: "3 番目の文字列"
};
var FinalParams = defaultParams;
// paramObject
の各プロパティを反復処理します。
for (paramObject の var キー) {
// 現在のプロパティが継承されていない場合は、続行します
If (paramObject.hasOwnProperty(key)) {
// 現在のプロパティが定義されている場合、
// FinalParams
に追加します
If (paramObject[key] !== 未定義) {
finalParams[キー] = paramObject[キー];
}
}
}
console.log(finalParams.param1,
finalParams.param2,
finalParams.param3);
}
myFunc({param1: "自分の文字列"});
これは少し扱いにくいですが、このメソッドを多くの場所で使用する場合は、jQuery や Underscore の extend メソッドなどの関連メソッドが多くのライブラリに用意されています。
以下では、Underscore の extend メソッドを使用して、上記と同じ結果を実現します。
function myFunc(paramObject) {
vardefaultParams = {
param1: "最初の文字列",
param2: "2 番目の文字列",
param3: "3 番目の文字列"
};
var FinalParams = _.extend(defaultParams, paramObject);
console.log(finalParams.param1,
finalParams.param2,
finalParams.param3);
}
// 出力:
// 「自分の文字列」と「2 番目の文字列」と「3 番目の文字列」
myFunc({param1: "自分の文字列"});
これは、現在の JavaScript バージョンでデフォルトのパラメータを取得する方法です。
記事内のあらゆる不正確な点についての批判と修正を歓迎します。

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック



