ホームページ > ウェブフロントエンド > jsチュートリアル > 関数、文字列、数値は実際に JavaScript のオブジェクトのように動作しますか?

関数、文字列、数値は実際に JavaScript のオブジェクトのように動作しますか?

Susan Sarandon
リリース: 2024-11-12 04:23:02
オリジナル
450 人が閲覧しました

Do Functions, Strings, and Numbers Actually Behave Like Objects in JavaScript?

JavaScript では関数、文字列、数値はオブジェクトですか?

JavaScript はほとんどすべてのものをオブジェクトとして宣言するという評判が、特に初心者。オブジェクトとそのメソッドやプロパティが重要な役割を果たしているのは事実ですが、文字列、数値、関数などのプリミティブの動作は多少異なります。

プリミティブ値とオブジェクト

JavaScript では、プリミティブ値は不変であり、ドット表記ではアクセスできません。ただし、JavaScript は、プリミティブにオブジェクトのようなメソッドとプロパティを与えるラッパー オブジェクト (文字列、数値、およびブール値) を提供します。

ラッパー オブジェクト

ラッパー オブジェクトは背後で作成されます。プリミティブのプロパティにアクセスするときのシーン。たとえば、次のコードでは、

var s = "foo";
var sub = s.substring(1, 2);
ログイン後にコピー

JavaScript は String オブジェクトをサイレントに作成し、substring() メソッドを呼び出してから、そのオブジェクトを破棄します。サブ変数にはプリミティブ文字列 "o" が含まれています。

プリミティブにプロパティを割り当てられるように見えるかもしれませんが、これらの割り当ては実際にはすぐに破棄されるラッパー オブジェクトに対して実行されます。したがって、次の例に示すように、このようなプロパティを取得すると、未定義が生成されます。

var s = "foo";
s.bar = "cheese";
alert(s.bar); // undefined
ログイン後にコピー

オブジェクトとしての関数

プリミティブとは異なり、関数は継承する本格的なオブジェクトです。オブジェクトから。次のコードに見られるように、これらはプロパティを持つことができます:

function foo() {}
foo.bar = "tea";
alert(foo.bar); // tea
ログイン後にコピー

要約すると、JavaScript ではプリミティブには本質的にオブジェクト特性がありません。ただし、ラッパー オブジェクトはオブジェクトのような動作の表面を提供しますが、関数はプロパティやメソッドと対話できる真のオブジェクトです。この区別は、JavaScript の型システムを理解し、情報に基づいてコーディングの決定を行うために不可欠です。

以上が関数、文字列、数値は実際に JavaScript のオブジェクトのように動作しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート