Javascriptチェーンの役割ドメインの詳細

2906 ワード

Javascriptチェーン役割ドメイン
Javascriptチェーンの役割ドメインの説明については、JS権威ガイドも含めて、冗長すぎます.しかし、JavaScriptの関数は、実行される役割ドメインではなく、定義された役割ドメインで実行されます.
この言葉は少し分かりにくいですが、プログラムの設計は、基本的には簡単で、理解しやすいためです.JSの経典の1つの言叶をしっかり覚えて、すべてすべて対象です.
チェーン型の役割ドメインは、Javascriptの特性の一つです.サブ関数で親関数にアクセスできるすべての変数です.もちろんグローバル変数window(一般的な関数定義function a(){}も含まれますが、実はwindowオブジェクトのサブ関数です.また、関数の定義には2つの方法がありますが、実際には少し違いがあります.

var a=function(){} function a(){},

後で彼らの違いを説明します.
したがって,Crockfordの<>で述べたように,1つの関数で変数を定義するには,良い習慣を身につけるには,直接関数の先頭で変数を定義してください.JSでは他の言語とは異なる要求があります.変数定義(使用前定義)をできるだけ遅らせます.
laruenceが提供する例を見てみましょう.

var name = 'laruence';
functionecho(){
   alert(name);
   var name = 'eve';
   alert(name);
   alert(age);
}
 
echo();

この例は実は迷いがあります(出力結果はlaruence,eve,errorです;実は結果はundefined,eve,errorです)、肝心なのはecho()関数で定義されたvar name='eve'のためです.しかし、書き方を変えると、この例はよくわかります.

var name = 'laruence';
function echo() {
   var name;
   alert(name);
   name = 'eve';
   alert(name);
   alert(age);
}
 
echo();

実は、上の関数はJSエンジンで解析すると、こう解析されます.初心者なら、実はこのように理解すればいいです.しかし、javaなどの他のプログラムのプログラミング経験があれば.PS:私はカバーの1つです.だから、やはりCrockfordの提案に従って、変数を定義して、関数の上部にどうぞ!!
前の質問を覚えていますか.
var a=function(){}とfunction a(){}の違い.
これらの違いは、変数の定義も似ています.すべてが対象だ.
彼ら2人は関数呼び出しの場合、基本的に等価ですが、関数を呼び出すと、関数を定義する前に問題が発生します.実は違いは等号とfunctionキーワードです.varとfunction定義はプリコンパイル時に繰り上げられ、varは占有されているだけで、具体的な付与はJSエンジンがこの行に実行されるまで待たなければならない.function定義は、JSエンジンプリコンパイルフェーズで呼び出しオブジェクトに直接挿入されます.
例を挙げます.
例1:

alert( echo );//function echo(){return 1;};
function echo(){return 1;};
alert( a );//undefined
var a=function(){return 1;};

したがって、関数の定義は一言を引用することもできます.関数の定義を上部に置いてください(定義してから呼び出します)!!
実はまだ慣れている問題で、JSの中のいくつかのコードの優れた習慣は他の言語とは違います.皆さんは<>を読むことをお勧めします.言語の勉強を始めるときは、優れたコードを楽しむことから始めたほうがいいです.JSでは、迷いに満ちたコードを使って自分の理解を深めるのが好きですが、これは実は誤解です.
もう一つ、thisキーワード、laruenceの解釈は「誰が呼び出したのか、誰がthisなのか」と簡潔です.英語版の詳細は、「In JavaScript this always refers to the“owner”of the function we're executing,or rather,to the object that a function is a method of.」JavaScriptでは、thisは常に私たちが実行している関数の所有者を参照し、より正確には、thisは関数のメソッドオブジェクトを参照します.
次の例を見ても、人を誤解させています.

function a(){
 g_value="uk";
}
a();
alert(g_value);

実は、比較的友好的な書き方はこうです.

function a(){
 this.g_value="uk";
}
a();//a.apply(this);
alert(this.g_value);

このキーワードについては、他の言語とも違います.まず、インスタンスの参照ではなく、コンテキストを呼び出します.上記の例のa()は、a.apply(this)に等価である.
callとapplyの使い方は同じで、違いはパラメータ伝達にあります.1つは1つの伝達パラメータであり、1つはパラメータをクラス配列として伝達する(この点はクラス配列であることに注意).
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!