构造函数 :
可以快速创建指定结构的对象, 创建对象后, 直接具备对应属性和方法, 与 Java 语法类似, 创建好构造函数后, 直接使用 new 关键字来创建新对象
在 JavaScript 中, 主要有两种构造函数的写法 :
第一种 :
使用 this 指向新对象, 使用 prototype 对象添加方法
//构造函数 -- start
function Methods(i, j) {
//这里是添加新对象的属性 i , j
//this 指向新对象
this.i = i;
this.j = j;
}
// Methods() 内直接添加函数, 每次 new 对象会创建新函数, 浪费内存
// 通过原型链, 将函数抽离到外部声明
// 使用 原型链 prototype 将函数添加到原型对象中
// 因为在调用对象的属性和方法是
// 如果当前对象中找不到, 就会通过原型链向上寻找, 直到找到为止
Methods.prototype.method = function () {
return this.i + this.j
}
//构造函数 -- end
// 传参数作为对应属性值
let method_01 = new Methods(1, 2);
console.log(method_01);
console.log(method_01.i); //1
console.log(method_01.j); //2
console.log(method_01.method());//3
let method_02 = new Methods(3, 4);
console.log(method_02);
console.log(method_02.i); //3
console.log(method_02.j); //4
console.log(method_02.method());//7
第二种 :
与 Java 语法中的 class 类对象相似
// 构造函数 -- start
class Methods {
// constructor 添加属性
constructor(i, j) {
this.i = i;
this.j = j;
}
//方法直接写
method() {
return this.i + this.j;
}
}
//构造函数 -- end
let method_01 = new Methods(1, 2);
console.log(method_01);
console.log(method_01.i); //1
console.log(method_01.j); //2
console.log(method_01.method()); //3
如果已掌握一门后端语言, 比如 Java , 推荐在 JavaScript 中使用第二种构造函数方法