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