4

たまたま、JavaScript もFunctionActionScript と同様にキーワードをサポートしていることに気付きました。どちらも ECMA Script から派生したものであるため、このような類似点があることは周知の事実です。しかし、Javascript の場合、(as3 のように) クラスではないにしても、関数が何を表しているのか興味がありました。

JSでは、

var func = new Function(); また var func = new Function;

「anonymous」という関数を変数「func」に代入します。

オブジェクト指向の方法で実際の「関数」を実装するための単なる方法でしょうか..

ほとんどのブラウザー (ff、ie & chrome) は同じように実装しているようですが、仕様で対処されていますか?

4

3 に答える 3

6

Functionすべての機能が拡張される「クラス」です。すべての関数は実際にはFunctionオブジェクトです。

(function(){}) instanceof Function === true

new Functionを使用して、文字列から関数を作成することもできます ( などeval)。

var func = new Function('x,y', 'return x+y;')
于 2013-02-25T14:26:29.540 に答える
2

「JavaScript のすべての関数は、実際には Function オブジェクトです。」MDN ドキュメント

function myFunc(a, b) {
  console.log( 'test' );
}

は本質的に等しい

var myFunc = new Function('a', 'b', 'console.log( "test" )');

ただし、関数を宣言する 2 つの方法にはいくつかの違いがあります。ドキュメントを読んでください!

于 2013-02-25T14:28:04.593 に答える
-1

片道:

var Person = function() {
    this.name;
    this.age;
}

var p1 = new Person();

2 番目の方法:

function Person() {
    this.name;
    this.age;
}

var p1 = new Person();
于 2013-02-25T14:27:54.563 に答える