ホームページ  >  記事  >  ウェブフロントエンド  >  jsラッパークラスの深い理解

jsラッパークラスの深い理解

零到壹度
零到壹度オリジナル
2018-04-12 11:21:292669ブラウズ

この記事の内容は、js パッケージング クラスの詳細な理解を共有することです。必要な友人はそれを参照できます。

パッケージング クラスについて説明する前に、説明しましょう。次の例を見てください

rreee

答えは何ですか?

これは明らかではないでしょうか? 上記の str は name という名前の属性を追加し、その値は world である必要があります。

このコードを見たとき、これが最初に頭に浮かぶことだと思います。

おめでとうございます、間違った答えが得られました。値は未定義です。

js では、プリミティブ値を除いて、その他すべてがオブジェクトであり、オブジェクトは独自のプロパティとメソッドを持つことができることを知っています。 (メソッドは属性が関数の場合、メソッドと呼びます)

では、元の値には独自の属性があるのでしょうか?

var str = 'hello';
str.name = 'world';
console.log(str.name);

文字列長メソッドを呼び出すと、配列と同じようにその番号を出力できます。 。

文字列はオブジェクトではないのに、なぜ独自のメソッドがあるのでしょうか?

これは、str 属性を使用している限り、js は new String(str) を呼び出して str をオブジェクトにラップするため、このオブジェクトは String 上のメソッドを継承します。


これらはすべて String メソッドです。

しかし、文字列に必要な属性がない場合はどうなるでしょうか?

その後、js は String に属性を作成しますが、作成後はすぐに破棄されます。

この例をもう一度見てみましょう

var str = 'hello';
console.log(str.length) // 6

同様に、number と boolean も

以上がjsラッパークラスの深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。