4

私は事前にjsの知識がなくてもJavaScriptTheGood Partsを読んでいて、このビットが私を困惑させました。明確にする必要があると思います。

JavaScriptを使用すると、言語の基本的なタイプを拡張できます。第3章では、Object.prototypeにメソッドを追加すると、そのメソッドをすべてのオブジェクトで使用できるようになることを確認しました。これは、関数、配列、文​​字列、数値、正規表現、およびブール値に対しても機能します。たとえば、Function.prototypeを拡張することで、すべての関数でメソッドを使用できるようにすることができます。

次に、この例を続けます。

Function.prototype.method = function (name, func) {
     this.prototype[name] = func;
     return this;
};

現在、すべての基本型には「メソッド」メソッドがあるため、次のような新しい関数を定義できます。

Number.method('integer', function () {
    return Math[this < 0 ? 'ceiling' : 'floor'](this);
});

しかし、この本は以前、すべてが機能ではなくオブジェクトにリンクしていることを指摘していました!これはどのように機能していますか?

4

1 に答える 1

3

いいえ、関数のみがありますFunction.prototypeNumberはコンストラクター関数であるため、そのプロトタイプに「リンク」されています。

nodejs/V8シェルの説明は次のとおりですNumber

> Number
[Function: Number]
> typeof Number
'function'
于 2012-05-05T12:13:32.483 に答える