クローズド、構造関数、プロトタイプチェーンの理解
846 ワード
1、クローズド
クローズドとは、JavaScriptにおいて、別の関数のスコープにアクセスできる変数の関数です.
簡単に言えば、閉じます. 関数のスコープ内で作成された変数と方法は、この関数のスコープの外で使用できます.
クローズドの最大の特徴は、外部関数の変数を参照すると、この変数はグローバル変数と同じ特権を享受できます.ページを閉じたり、ブラウザを閉じたりしない限り、破壊されません.
JavaScriptでは、関数の実行が完了すると、関数のスコープ内の変数が破壊されます.
ですから、クローズドは慎重に使います.濫用するとメモリの無駄になります.
2、コンストラクタ
new操作によって呼び出されたどの関数も構造関数と呼ばれることができます.構造関数と他の関数の唯一の違いは呼び出し方式の違いです.
コンストラクタはオブジェクトを作成して初期化します.
コンストラクタを呼び出すと発生する4つのステップ
(1)新しいオブジェクトを作成します. (2)構造関数のスコープを新しいオブジェクトに割り当てます. (3)コンストラクタのコードを実行する (4)新しいオブジェクトを返す
3、プロトタイプチェーン
クローズドとは、JavaScriptにおいて、別の関数のスコープにアクセスできる変数の関数です.
簡単に言えば、閉じます. 関数のスコープ内で作成された変数と方法は、この関数のスコープの外で使用できます.
クローズドの最大の特徴は、外部関数の変数を参照すると、この変数はグローバル変数と同じ特権を享受できます.ページを閉じたり、ブラウザを閉じたりしない限り、破壊されません.
JavaScriptでは、関数の実行が完了すると、関数のスコープ内の変数が破壊されます.
ですから、クローズドは慎重に使います.濫用するとメモリの無駄になります.
2、コンストラクタ
new操作によって呼び出されたどの関数も構造関数と呼ばれることができます.構造関数と他の関数の唯一の違いは呼び出し方式の違いです.
コンストラクタはオブジェクトを作成して初期化します.
コンストラクタを呼び出すと発生する4つのステップ
(1)新しいオブジェクトを作成します. (2)構造関数のスコープを新しいオブジェクトに割り当てます. (3)コンストラクタのコードを実行する (4)新しいオブジェクトを返す
// ,
function Person(name,age,job){
this.name=name;
this.age=age;
this.job=job;
this.sayName=function(){
console.log(this.name)
}
}
var person1=new Person("jack",23,"doctor");
3、プロトタイプチェーン