ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptクロージャvar that=thisの詳しい説明

JavaScriptクロージャvar that=thisの詳しい説明

小云云
小云云オリジナル
2018-02-22 15:57:333051ブラウズ

概要

var f1  = function(){
    var a = 999;
    nAdd = function(){n+=1}    //没有var,nAdd是全局变量
    f2 = function(){
        alert(a)
    }
    return f2;
}
var result = f1();
result();    //999
nAdd();        //相当于一个setter,可以在函数外部操作函数内部变量的值
result();    //1000,f2()被执行了2次

クロージャの概念

関数内の関数

クロージャの目的

関数内の変数を読み取ることができます
親関数の変数を常にメモリ内に保持します
注:必要に応じて親を保持するには関数の変数値は変更されません。親関数をオブジェクトとして使用する必要があります

//父函数作对象
var name = 'The Window';
var object = {
    name : 'The Object',
    getName : function(){
        return function(){
            return this.name
        }
    }
}

alert(object.getName()())    //The Window

var that = this;

var _name = 'The Window';
var object = {
    _name : 'The Object',    //_name 下划线表示私有变量
    getName : function(){
        var that = this;
        return function(){
            return that._name;
        }
    }
}

alert(object.getName()())    //The Object

that=this / _this=this


Learn Javascript クロージャ (Closure) (阮 Yifeng )

関連する推奨事項:

JavaScript クロージャの詳細な紹介

JavaScript クロージャの例の簡単な適用

JavaScript のクロージャとは何ですか? JavaScriptクロージャの使い方は?

以上がJavaScriptクロージャvar that=thisの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。