オブジェクトを作成する2つの方法
1657 ワード
オブジェクトの字面量を使用してオブジェクトを作成する
new Objectを使用したオブジェクトの作成
カスタムコンストラクタ
上記の2つの方法は、1回に1つのオブジェクトしか作成できないので不便ですが、複数のオブジェクトを1回作成する必要がある場合は、コンストラクション関数を使用する必要があります.
例:
newキーワード実行プロセス newコンストラクション関数は、新しい空のオブジェクト を生成することができる. thisは、作成したこの空のオブジェクト を指します.コンストラクタ内のコードを実行する(割り当て操作を完了する) は、このオブジェクトを返します.
thisの指向問題
一般的にthisは彼の呼び出し者を指している. thisは関数でwindowを指します.Windowsがこの関数を呼び出したからです. thisオブジェクト内の指向は、現在のオブジェクトです. thisは、構造関数において現在のこの呼び出し者を指す.
var obj = {
name: ' ',
age: 18,
sayHi: function () {
console.log('hi');
}
};
//
console.log(obj.name);
console.log(obj['age']); // , 。
obj.sayHi();
// :
//
// 。
new Objectを使用したオブジェクトの作成
var object = new Object();
object.name = ' ';
object.age = 19;
object.sex = ' ';
object.sayHi = function(){
console.log(' ');
}
// , 。 . =
// 。
console.log(object.age);
カスタムコンストラクタ
上記の2つの方法は、1回に1つのオブジェクトしか作成できないので不便ですが、複数のオブジェクトを1回作成する必要がある場合は、コンストラクション関数を使用する必要があります.
// function ( 1....){
//this. = ;
//this. = function(){}
// }
// new ()
例:
function Star(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
this.sing = function(){
console.log(' ');
}
}
var ldh = new Star(' ',22,' '); // new
console.log(ldh.name);
console.log(ldh.age);
console.log(ldh.sex);
newキーワード実行プロセス
thisの指向問題
一般的にthisは彼の呼び出し者を指している.