ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript パッケージング オブジェクト インスタンスの分析_JavaScript スキル

JavaScript パッケージング オブジェクト インスタンスの分析_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 16:07:151082ブラウズ

この記事の例では、JavaScript パッケージ化オブジェクトの使用法について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。

js オブジェクトは複合値です。プロパティまたは名前付き値のコレクションです。

次のコードを参照してください:

var s = "hello world";
var len = s.length;

この例では、s は文字列であり、string はオブジェクトではありませんが、なぜ属性があるのでしょうか?実際、文字列 s のプロパティが参照されている限り、js は new String を呼び出して文字列をオブジェクトに変換し、そのオブジェクトは文字列のメソッドを継承し、プロパティの参照を処理するために使用されます。プロパティが参照されると、最後に、新しく作成されたオブジェクトは破棄されます (この一時オブジェクトは実装時に必ずしも作成または破棄されるわけではありませんが、全体のプロセスは次のようになります)。

文字列と同様、数値やブール値にも独自のメソッドがあります。一時オブジェクトは Number() シングルコア Boolean() コンストラクターを通じて作成され、これらのメソッドの呼び出しはすべてこの一時オブジェクトから行われます。 、null および未定義はオブジェクトをラッパーしません。そのプロパティにアクセスすると型エラーが発生します。
たとえば、次のコード:

var s0 = "hello world";
s0.len = 100;
var t = s.len; //t的值将为undefined

行 2 は一時オブジェクトを作成してすぐに破棄するため、行 3 は元の文字列値を使用して新しい文字列オブジェクトを作成し、その len 属性を読み取ろうとしますが、これは当然存在しません。このコードは、文字列、数値、ブール値のプロパティ値またはメソッドを読み取るときにオブジェクトのように動作する方法を示しています。ただし、そのプロパティに値を割り当てようとすると、この操作は無視されます。変更は一時オブジェクトに対してのみ発生し、一時オブジェクトは保持されません。
文字列、数値、またはブール値のプロパティにアクセスするときに一時的に作成される一時オブジェクトは、ラッパー オブジェクトと呼ばれます。
文字列オブジェクトを明示的に作成してそのプロパティを追加できます。当然、プロパティは保持されます。

var str = "hello world";
var objs = new String(str);
objs.len = 100;
var t = objs.len; //t将被赋值为100

js は、必要に応じてラップされたオブジェクトをプリミティブ値に変換するため、作成された表示オブジェクトとそれに対応するプリミティブ値は、常にではありませんが、多くの場合同じように動作します。 == 演算子は元の値とそのラップされたオブジェクトを等しいものとして扱いますが、=== 合同演算子はそれらを等しくないものとして扱います。さらに、typeof 演算子を使用して元の値とラップされたオブジェクトの違いを確認できます。

この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。

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