JavaScript 関数オブジェクトからの関数呼び出し call,aplly
◎Create1オブジェクト生成 new
■自作関数obNewCreate this.Num 初期値
this.Num = undefined
■自作関数obNewCreate this.Num = 5000 代入後
this.Num = 5000
■オブジェクトにぶら下げた変数プロパティの出力
objNewCreate1.Num = 5000
■トップレベルからの関数呼び出し オブジェクト生成無し。
Num = 10000
■同時生成関数定義呼び出し
this.Num = 1048, this.Num2Power10 = 1024
■同時生成関数定義呼び出し時生成オブジェクト
objDirectCreate1.Num = 1048
objDirectCreate1.Num2Power10 = 1024
■引数あり関数funcName2 引数値表示処理
nValue1 = 1024, nValue2 = 65535, nValue3 = 1024
引数の総数funcName2.arity = undefined
引数の総数funcName2.arguments.length = 3
引数の総数funcName2.arguments[0] = 1024
引数の総数funcName2.arguments[1] = 65535
引数の総数funcName2.arguments[2] = 1024
■引数付き関数呼び出し結果
nValue1 = 68718428160
■apply結果
■objFuncName3呼び出し
objFuncName3.constructor = function Function() { [native code] }
objFuncName3.caller = function objFuncName1(nValue1,nValue2,nValue3){
this.arg3 = nValue3;
objFuncName3.apply(this, arguments);//☆☆☆
with(document){
write("■objFuncName1呼び出し
");
write("objFuncName1.constructor = " + objFuncName1.constructor + "
");
write("objFuncName1.caller = " + objFuncName1.caller + "
");
}
}
■objFuncName1呼び出し
objFuncName1.constructor = function Function() { [native code] }
objFuncName1.caller = null
■生成したオブジェクトのプロパティ値表示
objFunc1.arg1 = 1024, objFunc1.arg2 = 65535, objFunc1.arg3 = 1024
■call結果
■objFuncName3呼び出し
objFuncName3.constructor = function Function() { [native code] }
objFuncName3.caller = function objFuncName2(nValue1,nValue2,nValue3){
this.arg3 = nValue3;
objFuncName3.call(this, nValue1, nValue2);//☆☆☆
with(document){
write("■objFuncName2呼び出し
");
write("objFuncName2.constructor = " + objFuncName2.constructor + "
");
write("objFuncName2.caller = " + objFuncName2.caller + "
");
}
}
■objFuncName2呼び出し
objFuncName2.constructor = function Function() { [native code] }
objFuncName2.caller = null
■生成したオブジェクトのプロパティ値表示
objFunc2.arg1 = 1024, objFunc2.arg2 = 65535, objFunc2.arg3 = 1024