下面是 JavaScript 创建对象的完整攻略:
1. 对象创建方式
JavaScript 有三种创建对象的方式:
1.1. Object 构造函数方式
使用 Object 构造函数创建对象时,需要通过 new
操作符创建一个对象实例。
let obj = new Object();
obj.name = '张三';
obj.age = 18;
1.2. 对象字面量方式
对象字面量方式是最常见的对象创建方式,它使用花括号 {}
来定义对象。
let obj = {
name: '张三',
age: 18
};
1.3. 构造函数方式
使用构造函数方式创建对象时,需要定义一个构造函数,并通过 new
操作符创建一个对象实例。
function Person(name, age) {
this.name = name;
this.age = age;
}
let obj = new Person('张三', 18);
2. 原型与原型链
在 JavaScript 中,每个对象都有一个原型(prototype),可以将原型看做一个模板,用来定义对象的属性和方法。当访问对象的属性或方法时,如果对象本身没有该属性或方法,则会去原型中查找。
如果一个对象的原型又指向了另一个对象的原型,那么就形成了一个原型链(prototype chain)。
通过原型链,一个对象可以访问到其他对象的属性和方法。
示例代码:
function Person(name, age) {
this.name = name;
this.age = age;
}
// 在 Person.prototype 上添加方法
Person.prototype.sayHi = function() {
console.log('大家好');
}
let obj = new Person('张三', 18);
// 调用 obj 的 sayHi 方法,由于 obj 没有该方法,所以会在 obj 的原型上查找,即 Person.prototype
obj.sayHi(); // 输出 "大家好"
3. 继承方式
在 JavaScript 中,可以使用原型链来实现继承,也可以使用 ES6 中引入的 class
关键字来实现继承。
3.1. 使用原型链实现继承
使用原型链实现继承时,可以通过让一个构造函数的原型指向另一个构造函数的实例来实现。
示例代码:
function Person(name, age) {
this.name = name;
this.age = age;
}
function Student(name, age, grade) {
this.grade = grade;
}
// 让 Student.prototype 的原型指向 Person.prototype,就实现了继承
Student.prototype = new Person();
let obj = new Student('张三', 18, 1);
console.log(obj.name); // 输出 "张三"
console.log(obj.age); // 输出 18
console.log(obj.grade); // 输出 1
3.2. 使用 ES6 中的 class 实现继承
ES6 中引入了 class
关键字,可以更加方便地实现继承。
示例代码:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
class Student extends Person {
constructor(name, age, grade) {
super(name, age);
this.grade = grade;
}
}
let obj = new Student('张三', 18, 1);
console.log(obj.name); // 输出 "张三"
console.log(obj.age); // 输出 18
console.log(obj.grade); // 输出 1
以上就是 JavaScript 创建对象的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 创建对象 - Python技术站