0

私は次のように Object クラスにメソッドを追加するという考えをいじっていました:

Object.prototype.is = function(operand) {
  return this === operand;
};

10.is(10); // returns false

私は結果に少し腹を立てています、誰か洞察を提供できますか?

4

1 に答える 1

8

JavaScript では、数値プリミティブは のインスタンスではありませんNumber。コンパイラがそれをオブジェクト10.isでラップ10することを確認したNumber場合 (オブジェクトのみがプロパティを持つことができるため)。は自動型変換を抑制する10ため、そのオブジェクトは引数と等しくありません。===

(10).is(10)PSコードを合法的な構文にするためには、次のようなものが必要です。

于 2013-03-03T19:46:19.360 に答える