Javascriptの4つの関数の呼び出し方法
934 ワード
説明を簡単にするために、まず関数を作成します.
一、直接呼び出し
二、コンストラクタとして呼び出される
三、方法として呼び出す
四、function.call
また、直接呼び出しは以下に相当します.
コンストラクターとしての呼び出しは、
function showmsg(){ console.log(this);}
このオブジェクトを印刷する役割もありますし、何を指すのか分かりやすいです.一、直接呼び出し
showmsg();
結果:Window {top: Window, window: Window, location: Location, external: Object, chrome: Object…}
直接呼び出しの場合、その中のthisはトップのオブジェクトwindowであることが分かります.二、コンストラクタとして呼び出される
var obj = new showmsg();
結果:showmsg {}
呼び出し後、タイプと関数の同名のオブジェクトが作成されました.thisはこの対象を指す.三、方法として呼び出す
var obj = {showmsg: showmsg};obj.showmsg();
結果:Object {showmsg: function}
その中のthisは、そのバインディングされたオブジェクトです.四、function.call
showmsg.call({});
結果:Object {}
コールの最初のパラメータは何ですか?中のthisは何ですか?パラメータを送る必要があれば、後に付けばいいです.また、これはバインディングしていないだけで呼び出すことができます.また、直接呼び出しは以下に相当します.
showmsg.call(null);
最初のパラメータがnullであれば、中のthisは最上階のオブジェクトwindowです.コンストラクターとしての呼び出しは、
var obj = {};obj.__proto__ = showmsg;showmsg.call(obj);