JavaScript 学習のヒント: call スキルと apply_javascript スキルの違い
call メソッド
オブジェクトのメソッドを呼び出して、現在のオブジェクトを別のオブジェクトに置き換えます。
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
パラメータ
thisObj
オプション。現在のオブジェクトとして使用されるオブジェクト。
arg1、arg2、、、argN
オプション。一連のメソッドパラメータが渡されます。
説明
call メソッドを使用すると、別のオブジェクトの代わりにメソッドを呼び出すことができます。 call メソッドは、関数のオブジェクト コンテキストを初期コンテキストから thisObj で指定された新しいオブジェクトに変更します。
thisObj パラメーターが指定されていない場合は、グローバル オブジェクトが thisObj として使用されます。
簡単な例 (関数呼び出し):
関数 add(a,b)
{
alert(a b);
関数 sub(a,b)
{
alert(a-b);
add.call(sub,3,1);
この例では、sub を add に置き換えることを意味します、add.call(sub,3,1) == add(3) ,1 )、実行結果は次のようになります:alert(4); 複雑な例 (メソッド呼び出し):
function Class1()
this.name = "class1";
this.showNam = function()
{
alert (this.name );
}
}
function Class2()
{
this.name = "class2";
}
var c1 = new Class1() ;
var c2 = new Class2();
c1.showNam.call(c2);
call は c1 のメソッドを実行することを意味します。 c2 には showNam.() メソッドがないので、実行のために c1 の showNam() メソッドを c2 に配置します。そのため、this.name は class2 になり、実行結果は次のようになります。 >継承の実装
{
alert(txt);
}
}
function Class2()
{
Class1.call (this);
}
var c2 = new Class2();
このように、Class2 は Class1 を継承します。 call(this) は、このオブジェクトの代わりに Class1 オブジェクトを使用することを意味します。 では、Class2 には Class1 のメソッドとメソッドがすべて含まれているのではないでしょうか? 実行結果は次のようになります。 cc”);
はい、これです。これは、JavaScript がオブジェクト指向で継承をシミュレートする方法であり、多重継承も実装できます。
コードをコピー
alert(a-b);
}
}
関数 Class11()
{
this.showAdd = function(a,b)
{
alert(a b)
}
}
function Class2()
{
Class10.call(this);
Class11.call(this);
}
2 つの呼び出しを使用して多重継承を実現します
もちろん, js プロトタイプチェーンを使用するなど、他の方法もあります。これはこの記事の範囲外です。ここでは call の使用方法について説明します。
もちろん、これら 2 つの方法が基本的に適用されます。同じことを意味します
2 でなければなりません。 > apply と call の両方で 関数は同じですが、パラメーターが異なります。
最初のパラメータは同じ意味ですが、2 番目のパラメータについては、
apply はパラメータ配列に渡されます。つまり、複数のパラメータが 1 つの配列に結合されて渡され、call は call として使用されます。渡されます (2 番目のパラメーターから始まります)。
たとえば、func.call(func1,var1,var2,var3) の対応する apply 書き込みメソッドは次のとおりです。 func.apply(func1,[var1,var2,var3])
ヒント (コードエレガントで実行効率が高い)
コードをコピー
コードは次のとおりです:

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

このチュートリアルでは、カスタムGoogle検索APIをブログまたはWebサイトに統合する方法を示し、標準のWordPressテーマ検索関数よりも洗練された検索エクスペリエンスを提供します。 驚くほど簡単です!検索をyに制限することができます

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

この記事シリーズは、2017年半ばに最新の情報と新鮮な例で書き直されました。 このJSONの例では、JSON形式を使用してファイルに単純な値を保存する方法について説明します。 キー価値ペア表記を使用して、あらゆる種類を保存できます

コードプレゼンテーションを強化する:開発者向けの10個の構文蛍光物 ウェブサイトやブログでコードスニペットを共有することは、開発者にとって一般的な慣行です。 適切な構文ハイライターを選択すると、読みやすさと視覚的な魅力を大幅に改善できます。 t

楽なWebページレイアウトのためにjQueryを活用する:8本質的なプラグイン jQueryは、Webページのレイアウトを大幅に簡素化します。 この記事では、プロセスを合理化する8つの強力なjQueryプラグイン、特に手動のウェブサイトの作成に役立ちます

この記事では、JavaScriptとJQuery Model-View-Controller(MVC)フレームワークに関する10を超えるチュートリアルの厳選された選択を紹介します。これは、新年にWeb開発スキルを向上させるのに最適です。 これらのチュートリアルは、Foundatioのさまざまなトピックをカバーしています

コアポイント これは通常、メソッドを「所有」するオブジェクトを指しますが、関数がどのように呼び出されるかに依存します。 現在のオブジェクトがない場合、これはグローバルオブジェクトを指します。 Webブラウザでは、ウィンドウで表されます。 関数を呼び出すと、これはグローバルオブジェクトを維持しますが、オブジェクトコンストラクターまたはそのメソッドを呼び出すとき、これはオブジェクトのインスタンスを指します。 call()、apply()、bind()などのメソッドを使用して、このコンテキストを変更できます。これらのメソッドは、与えられたこの値とパラメーターを使用して関数を呼び出します。 JavaScriptは優れたプログラミング言語です。数年前、この文はそうでした
