// 创建一个对象的几种方式
// 1. 使用对象字面量
const person = {
name: 'Alice',
age: 25,
greet: function() {
console.log(`Hello, my name is ${this.name}`);
}
};
person.greet(); // 输出: Hello, my name is Alice
// 2. 使用构造函数
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
console.log(`Hello, my name is ${this.name}`);
};
}
const alice = new Person('Alice', 25);
alice.greet(); // 输出: Hello, my name is Alice
// 3. 使用 Object.create 方法
const personPrototype = {
greet: function() {
console.log(`Hello, my name is ${this.name}`);
}
};
const bob = Object.create(personPrototype);
bob.name = 'Bob';
bob.age = 30;
bob.greet(); // 输出: Hello, my name is Bob
// 4. 使用类 (ES6+)
class PersonClass {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name}`);
}
}
const charlie = new PersonClass('Charlie', 35);
charlie.greet(); // 输出: Hello, my name is Charlie
// 常用对象方法示例
// 1. Object.keys 获取对象自身的所有可枚举属性的键名
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.keys(obj)); // 输出: ['a', 'b', 'c']
// 2. Object.values 获取对象自身的所有可枚举属性的键值
console.log(Object.values(obj)); // 输出: [1, 2, 3]
// 3. Object.entries 获取对象自身的所有可枚举属性的键值对
console.log(Object.entries(obj)); // 输出: [['a', 1], ['b', 2], ['c', 3]]
// 4. Object.assign 浅拷贝对象
const target = { a: 1 };
const source = { b: 2, c: 3 };
Object.assign(target, source);
console.log(target); // 输出: { a: 1, b: 2, c: 3 }
// 5. Object.freeze 冻结对象,防止修改
const frozenObj = { prop: 42 };
Object.freeze(frozenObj);
frozenObj.prop = 24; // 这个操作不会生效
console.log(frozenObj.prop); // 输出: 42
下一篇:js math 向下取整
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站