[解決済み】javascriptの[].slice.callの説明?
2022-04-05 11:17:09
質問
DOM NodeList を通常の配列に変換する、この巧妙なショートカットを偶然見つけたのですが、正直言って、これがどのように機能するのか完全に理解していません。
[].slice.call(document.querySelectorAll('a'), 0)
つまり、空の配列から始まります。
[]
そして
slice
の結果を変換するために使用されます。
call
を新しい配列に変換してください。
私が理解できないのは
call
. どのように変換するのですか?
document.querySelectorAll('a')
をNodeListから通常の配列に変更することはできますか?
どのように解決するのですか?
ここで起こっていることは、あなたが
slice()
の関数であるかのように
NodeList
を使って
call()
. 何
slice()
この場合、空の配列を作成し、実行中のオブジェクト (元は配列、今は
NodeList
を作成し、そのオブジェクトの要素を作成した空の配列に追加し続け、最終的にそれを返します。以下は
これに関する記事
.
EDITです。
つまり、空の配列 [] から始まり、スライスを使用して 呼び出しの結果を新しい配列に変換するのか?
それはおかしいですね。
[].slice
は関数オブジェクトを返します。関数オブジェクトは関数
call()
の最初のパラメータを割り当てた関数を呼び出します。
call()
を
this
言い換えれば、関数がパラメータから呼び出されていると考えるようにするのです。
NodeList
で返される
document.querySelectorAll('a')
) からではなく、配列から取得します。
関連
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】Kendo Observable Bindingと併用する場合、Kendo Switch Labelsを変更することは可能ですか?[Kendo-UI]です。
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 Uncaught TypeError: data.push is not a function
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み】未定義のプロパティ 'bind' を読み込めない。React.js【重複あり
-
[解決済み】JavaScriptのボタンonclickが機能しない
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み】Vueが定義されていない
-
[解決済み] Array.prototype.slice.call`はどのように機能するのですか?
-
[解決済み] JavaScriptのNodeListをArrayに変換する最速の方法は?