5.2.3.1コンストラクタ
コンストラクタは:主オブジェクト、メンバ変数の初期値を割り当てられているオブジェクトを初期化するために使用される、特殊な関数であり、それは常に新しい演算子で使用されます。私たちは、その関数にカプセル化され、抽出されたいくつかのパブリックオブジェクトのプロパティとメソッドを置くことができます。
パッケージコンストラクタ形式:
function 构造函数名(形参1,形参2,形参3) { this.属性名1 = 参数1; this.属性名2 = 参数2; this.属性名3 = 参数3; this.方法名 = 函数体; }
コンストラクタ形式を呼び出し
var obj = new 构造函数名(实参1,实参2,实参3)
上記コードは、受信したオブジェクトのコンストラクタから作成されているOBJ。
注意事項
- コンストラクタは、合意された資産計上。
- 上記の機能のプロパティとメソッドを追加する必要があり、これを現在のオブジェクトのプロパティとメソッドということ、。
- コンストラクタは戻り結果に戻る必要はありません。
- 我々はオブジェクトを作成すると、新しいコンストラクタで呼び出さなければなりません。
その他:コンストラクタとオブジェクト間の関係
オブジェクトクラスおよびオブジェクトのインスタンスの間の[関係。]
(1)星のようなコンストラクタ、()、オブジェクトの抽象公開部分は、パッケージ内の関数には、特定のカテゴリ(クラス)を指す
新たなスターのようなオブジェクト()、特に1を作成する(2)。
(3)オブジェクトがインスタンス化される:我々は、キーワードオブジェクトがインスタンス化されることで呼ばれている新しいプロセスを使用してオブジェクトを作成します。
// 利用构造函数创建对象
// 我们需要创建四大天王的对象 相同的属性: 名字 年龄 性别 相同的方法: 唱歌
// 构造函数的语法格式
// function 构造函数名() {
// this.属性 = 值;
// this.方法 = function() {}
// }
// new 构造函数名();
function Star(uname, age, sex) {
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang) {
console.log(sang);
}
}
var ldh = new Star('刘德华', 18, '男'); // 调用函数返回的是一个对象
// console.log(typeof ldh);
console.log(ldh.name);
console.log(ldh['sex']);
ldh.sing('冰雨');
var zxy = new Star('张学友', 19, '男');
console.log(zxy.name);
console.log(zxy.age);
zxy.sing('李香兰')
// 1. 构造函数名字首字母要大写
// 2. 我们构造函数不需要return 就可以返回结果
// 3. 我们调用构造函数 必须使用 new
// 4. 我们只要new Star() 调用函数就创建一个对象 ldh {}
// 5. 我们的属性和方法前面必须添加 this
// 构造函数和对象
// 1. 构造函数 明星 泛指的某一大类 它类似于 java 语言里面的 类(class)
function Star(uname, age, sex) {
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang) {
console.log(sang);
}
}
// 2. 对象 特指 一个具体的事物 刘德华 == {name: "刘德华", age: 18, sex: "男", sing: ƒ}
var ldh = new Star('刘德华', 18, '男'); // 调用函数返回的是一个对象
console.log(ldh);
// 3. 我们利用构造函数创建对象的过程我们也称为对象的实例化