3

Functionオブジェクトは JavaScript で唯一のインスタンスだと思います。他のすべてのfunction(){...}orvar xx=function(){...}は、このオブジェクトから継承されたFunctionオブジェクトです。それがプロトタイプベースの言語機能です。また、プロトタイプベースの言語には がありませんClass。その利点の 1 つは、メソッドの追加やプロパティの追加など、いつでもオブジェクトを変更できることです。objectしたがって、キーと値のコレクションのように扱うことができると思います。作成後、いつでも項目を追加できます。(私が間違っていたら、私を訂正してください。)

コードがあるとします:

        Function.test=function(){
            alert(Function.name);//"Function"  
            alert(Function.myName);//"fun"
        };
        Function.name="fun";
        Function.myName="fun";
        Function.test();

上記のコードでやりたいことは、オブジェクトにtestメソッドを追加することだけです。Functionこのコードにエラーは見つかりませんでした。しかし、なぜFunction.name変更できないのでしょうか。

4

2 に答える 2

1

MDN のページには、関数の名前は読み取り専用であるため変更できないと記載されています。

于 2013-04-22T06:20:56.440 に答える