この例では、JS機能の使用について説明します。参照のためにそれを共有してください。詳細は次のとおりです。
JSで機能を書くとき、これはたくさん使用されます。これは正確には何ですか?これは、コンテキストとも呼ばれる実行環境の範囲を指すキーワード、ポインターです。
最初に機能について話しましょう。個人的には、関数は言語で繰り返し呼ばれるコードブロックであることを理解しています。
JSでは、関数がオブジェクトのプロパティに割り当てられている場合、メソッドと呼ばれます
のように:
var m = {}; m.title = 'title'; m.show = function(){alert(this.title)} m.show()機能をオブジェクトmの方法として呼び出すことです
この場合、これはオブジェクトmを指します。
直接コール関数名は関数と呼ばれます。
var a = 1212; function show(){alert(a)// 1212} show()// 1212グローバル環境では、グローバル変数はウィンドウプロパティとして理解でき、グローバル関数はウィンドウメソッドです
次の例を参照してください。
var m = {}; m.id = 'mmm'; m.show = function(){alert(this.id);} var a = {}; a.id = 'aaa'; a.show = m.show; a.show(); //aaaa.show=m.show;関数はオブジェクトであるため、最初にこの文を理解します。この表現は、A.ShowとM.Showを同時に参照することに相当します
function(){alert(this.id)}実際に同等です
a.show = function(){alert(this.id)}したがって、a.show()が呼び出されると、これはオブジェクトaを指します。
次の栗を見てください
var m = {}; m.id = 'mmm'm.show = function(){alert(this.id)} var a = {} a.id =' aaa'a.show = function(){m.show()}; a.show(); // mmmmしたがって、A.Show()を呼び出すとき、M.Show()の方法を呼び出すのと同等です。 Mオブジェクトを指します。
次の例を見てください、私はまだ最初はそれをあまり理解していませんでした
var color = 'red'; var app = {}; app.color = "green"; app.paint = function(node){node.style.color = this.color; alert(this.color);} function findNode(callback){var btn = document.queryselector( '。btn'); callback(btn); // passin、} findnode(app.paint);アラート(this.color); //緑の代わりに赤関数が引数に合格すると、参照ではなく、値に応じて引数に合格します
したがって、findNode(app.paint);伝達されます、それは実際です
function(node){node.style.color = this.color;アラート(this.color);}、FindNodeはグローバルに定義されているため、これはウィンドウまたは未定義を指します。
パラメーターを渡す、過去の値を渡すことについて
関数show(a){alert(a)}パラメーターが基本的なデータ型である場合、簡単に理解できます
var b = 10; show(b)// alert(10);
オブジェクトに関しては
var c = {}; c.prop = true; var showprop = function(obj){obj.prop = false} showprop(c); //c.prop=false一部の人々は、上記の例は参照に従ってパラメーターを渡すことだと考えています
実際、上記は値に応じてパラメーターを渡しています。 showProp(c)がcを関数に渡すと、cは実際に参照と同等です。関数にはobj.prop = falseがあり、これは参照オブジェクトを{prop:false}に変更することに相当します
次の例を見てください
var c = {}; c.prop = true; var showprop = function(obj){obj = new object(); obj.prop = false return obj;} showprop(c); alert(c.prop); //真実ここでは、着信OBJが変更されました。参照により関数に従ってパラメーターを渡すと、関数内の変更は間違いなく外部に反映されます。
この記事がみんなのJavaScriptプログラミングに役立つことを願っています。