下面是“js创建对象的几种常用方式小结(推荐)”的完整攻略。
1. 前言
在 JavaScript 中,创建对象是非常常见的操作之一。为了能够从不同的角度去看待对象创建的方式,不同的方法也应运而生。接下来,我们将会一一讨论对象创建方式的优缺点,以及使用场景。
2. 第一种常用方式:对象字面量
对象字面量是最常见和最简单的方式,由任意数量的“名称/值”对组成。对象字面量的形式为{}
,其中每个“名称/值”对都用逗号分隔,名称与值之间用冒号分隔。示例如下:
let student = {
name: 'Tom',
age: 20,
sayHi: function() {
console.log('Hi!');
}
}
这样便成功创建了一个名为“student”的对象。其中有两个属性——“name”和“age”,还有一个方法“sayHi”。这种方式简单便捷,特别适用于创建一些简单而且临时的对象。但在创建需要多个具有相同属性的对象时,重复输入属性的代码会带来很多麻烦。
3. 第二种常用方式:使用 Object 构造函数
Object 构造函数也可以用来创建对象,此时使用 new建立对象并添加属性和属性值。示例如下:
let student = new Object();
student.name = 'Tom';
student.age = 20;
student.sayHi = function() {
console.log('Hi!')
}
这样也成功地创建了一个名为“student”的对象。与对象字面量不同的是,使用 Object 构造函数时可以动态地添加属性。但对于刚才所说需要多个具有相同属性的对象,你仍然需要反复输入属性值。
4. 第三种常用方式:使用工厂函数
工厂函数是一种可以动态创建对象的方式,也是常用的一种方式。其使用函数返回一个新的对象,可用于创建一个有共同属性的对象。示例如下:
function studentFactory(name, age) {
let student = new Object();
student.name = name;
student.age = age;
student.sayHi = function() {
console.log('Hi!');
}
return student;
}
let student1 = studentFactory('Tom', 20);
let student2 = studentFactory('Jerry', 21);
这样,我们成功地使用工厂函数创建了两个名为“student1”和“student2”的对象。这种方式解决了对象字面量和使用 Object 构造函数的缺点,不再需要重复地输入属性和属性值。但工厂函数有个缺点,我们无法明确对象的类型。
5. 第四种常用方式:使用构造函数
构造函数和工厂函数很相似,不同的是构造函数使用 new 关键字调用来创建对象。在构造函数中,使用 this关键字来表示新创建的对象,并且直接添加属性和方法。示例如下:
function Student(name, age) {
this.name = name;
this.age = age;
this.sayHi = function() {
console.log('Hi!');
}
}
let student1 = new Student('Tom', 20);
let student2 = new Student('Jerry', 21);
这样我们便成功地创建了两个名为“student1”和“student2”的对象。这种方式比工厂函数更直观,可以明确对象的类型。但是因为每个对象都会重新定义方法,因此可能会造成内存浪费。
6. 第五种常用方式:使用原型
使用原型方式创建对象的特别之处在于,我们可以将属性和属性值添加到构造函数的 prototype 属性中,这样,新创建的对象就可以继承构造函数的所有属性和方法。示例如下:
function Student(name, age) {
this.name = name;
this.age = age;
}
Student.prototype.sayHi = function() {
console.log('Hi!');
}
let student = new Student('Tom', 20);
这时我们创建的对象“student”同样可以使用方法“sayHi”。由于多个实例共用一个原型,因此不会造成内存浪费。这种方式是 JavaScript 中非常常用的一种方式,也是 OOP(面向对象编程)的基础。
总结
以上便是创建对象的几种常用方式。不同的方式有不同的特点、优缺点和使用场景。我们可以根据实际需求来选择最合适的方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js创建对象的几种常用方式小结(推荐) - Python技术站