ホームページ > ウェブフロントエンド > jsチュートリアル > new_javascript のヒントを使用せずに、コンストラクターを使用して JavaScript でオブジェクトを作成する方法の説明

new_javascript のヒントを使用せずに、コンストラクターを使用して JavaScript でオブジェクトを作成する方法の説明

WBOY
リリース: 2016-05-16 17:55:46
オリジナル
1058 人が閲覧しました

次のように

コードをコピーします コードは次のとおりです:
関数 人(名前, 年齢) {
this.name = 名前;
this.age = 年齢;
var p = 新しい人 ('ユリ', 20); >何かを発見 ライブラリコードが new を使わずに通常のオブジェクトを作成する方法は奇妙です。以下のように



コードをコピー
コードは次のとおりです:var reg = RegExp('^he$' ); テストでは、new が使用されているかどうかに関係なく、最終的に返されるオブジェクトは通常のオブジェクトであり、それらの型はすべて「オブジェクト」であることがわかりました。


コードをコピー
コードは次のとおりです: var reg1 = new RegExp('^he$') ; var reg2 = RegExp('^he$'); reg1.test('he'); // true reg2.test('he'); .log( typeof reg1); // object
console.log(typeof reg2); // object



まあ、コードは正常に実行されます。
この場合は、新しいものをまったく書かないでください。これにより、コードの量が節約されます。これは他のタイプにも当てはまりますか?文字列/数値/ブール値を試してください。



コードをコピーします

console.log(typeof boo1); // boolean



ご覧のとおり、通常のケースとは異なります。通常、新しいかどうかに関係なく、typeof の後に object が続きます。
ただし、文字列/数値/ブール型の場合、新しいオブジェクト typeof は「object」を返し、新しい型以外の typeof は「string」を返します。
つまり、new が適用できない場合、他の型はそれぞれ文字列、数値、ブール型に変換できます。

それでは、章の冒頭の person クラスに戻りましょう。つまり、自分で作成したクラスは new 演算子を使用せずにオブジェクトを生成できるのでしょうか?




コードをコピー


コードは次のとおりです。

function person(name, age) {
this .name = 名前;
this.age = 年齢;
var p = person('lily', 20); // 未定義

コードをコピーします


コードは次のとおりです:

function Person(名前、年齢) {
this.name = 名前;
if (this===window) {
return new person(name, age); }
}
var p = Person('lily', 20); // オブジェクト
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート