私は以前、両方の割り当てa = "foo"
とa = new String('foo')
は同じものだと思っていました。ただし、前者の宣言では、console.log(a instanceof Object)
またはをconsole.log(a instanceof String)
返しますが、後者false
の場合は期待値を返します。true
これは2つの理由で奇妙に思えます。まず、通常の宣言を使用してもa = 'foo'
、すべての文字列メソッドがそれに対して機能し、オブジェクトから継承されていることを示しString
ます。そして次に、をa.constructor
返しますString
。
誰かが何が起こっているのか説明できますか?