new function(){},Function,new Function()の違い
2367 ワード
関数はJavaScriptの中で重要な言語要素であり、一つの言語要素を提供しています.
functionキーワードと内蔵オブジェクトFunctionは、次のように使用法とそれらの間で区別されます.
使用方法一:
機能
300
最も一般的なfunctionの使い方は、JavaScript関数を指定します.二つの書き方で表現された運転効果は全く同じで、後者の書き方には初期化優先度が高いのが唯一の違いです.大拡号内の変数の作用領域では、thisはfoo 01の所有者であるwindowオブジェクトを指す.
使用方法二:
object
300
これはpuzleのfunctionの使い方を比較して、関数を決めたようです.でも、実はこれは一つの注文です.
JavaScriptのユーザーがオブジェクトをカスタマイズしますが、ここは匿名です.この用法と関数自体の使用にはほとんど関係がありません.このスコープ自体を指す変数のスコープは、大拡散符号において構築されます.
機能
300
システム内の関数オブジェクトを使用して関数を構築します.これは、効果と初期化の優先度が同じで、関数体が文字列で与えられています.
使い方四:
機能
300
参考:
http://www.jb51.net/article/13894.htm
http://www.jb51.net/article/13895.htm
http://www.planabc.net/2008/02/20/javascript_new_function/
http://cykit.iteye.com/blog/72950
functionキーワードと内蔵オブジェクトFunctionは、次のように使用法とそれらの間で区別されます.
使用方法一:
var foo01 = function() //or fun01 = function()
{
var temp = 100;
this.temp = 200;
return temp + this.temp;
}
alert(typeof(foo01));
alert(foo01());
実行結果:機能
300
最も一般的なfunctionの使い方は、JavaScript関数を指定します.二つの書き方で表現された運転効果は全く同じで、後者の書き方には初期化優先度が高いのが唯一の違いです.大拡号内の変数の作用領域では、thisはfoo 01の所有者であるwindowオブジェクトを指す.
使用方法二:
var foo02 = new function()
{
var temp = 100;
this.temp = 200;
return temp + this.temp;
}
alert(typeof(foo02));
alert(foo02.constructor());
実行結果:object
300
これはpuzleのfunctionの使い方を比較して、関数を決めたようです.でも、実はこれは一つの注文です.
JavaScriptのユーザーがオブジェクトをカスタマイズしますが、ここは匿名です.この用法と関数自体の使用にはほとんど関係がありません.このスコープ自体を指す変数のスコープは、大拡散符号において構築されます.
var obj = (new function(){
this.a = 123;
this.fn = function(e){alert(e)};
//return new String('123');
//return 123;
});
obj.fn(123);
。
(new function(){
return '123';
})
(new function(){
return new String('123');
}) ?
使用方法3:var foo3 = new Function('var temp = 100; this.temp = 200; return temp + this.temp;');
alert(typeof(foo3));
alert(foo3());
実行結果:機能
300
システム内の関数オブジェクトを使用して関数を構築します.これは、効果と初期化の優先度が同じで、関数体が文字列で与えられています.
使い方四:
var foo4 = Function('var temp = 100; this.temp = 200; return temp + this.temp;');
alert(typeof(foo4));
alert(foo4());
実行結果:機能
300
参考:
http://www.jb51.net/article/13894.htm
http://www.jb51.net/article/13895.htm
http://www.planabc.net/2008/02/20/javascript_new_function/
http://cykit.iteye.com/blog/72950