首页  >  文章  >  web前端  >  JavaScript 对象方法示例

JavaScript 对象方法示例

Susan Sarandon
Susan Sarandon原创
2024-11-05 13:26:02182浏览

JavaScript Object Methods Example

JavaScript 对象方法示例。

  • Object.keys(obj): 返回对象自己的可枚举属性名称(键)的数组。
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.keys(obj));
// Output: ['a', 'b', 'c']
  • Object.values(obj): 返回对象自己的可枚举属性值的数组。
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.values(obj));
// Output: [1, 2, 3]
  • Object.entries(obj): 返回对象自己的可枚举字符串键控属性 [key, value] 对的数组。
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.entries(obj));
// Output: [['a', 1], ['b', 2], ['c', 3]]
  • Object.isSealed(obj): 如果对象是密封的,则返回 true,否则返回 false。
const obj = Object.seal({ a: 1 });
console.log(Object.isSealed(obj));
// Output: true
  • Object.assign(target, source): 将所有可枚举属性的值从一个或多个源对象复制到目标对象。它返回目标对象。
const target = { a: 1 };
const source = { b: 2, c: 3 };
const result = Object.assign(target, source);
console.log(result);
// Output: { a: 1, b: 2, c: 3 }
  • Object.freeze(obj): 冻结对象,防止添加新属性或删除或重新配置现有属性。
const obj = { name: 'Khabib' };
Object.freeze(obj);
obj.name = 'Bob'; // This won't change the value
console.log(obj.name); // Output: 'Khabib'
  • Object.seal(obj): 密封对象,防止添加新属性,但允许修改现有属性。
const obj = { name: 'Alice' };
Object.seal(obj);
obj.name = 'Bob'; // This will update the value
obj.age = 25; // This won't add a new property
console.log(obj); // Output: { name: 'Bob' }
  • Object.create(proto): 使用指定的原型对象和属性创建一个新对象。
const person = {greet() {console.log('Hello!');}};
const student = Object.create(person);
student.greet();
// Output: 'Hello!'
  • Object.defineProperty(obj,prop,descriptor):直接在对象上定义新属性或修改现有属性。
const obj = {};
Object.defineProperty(obj, 'name', {
value: 'Alice',
writable: false });
console.log(obj.name); // 'Alice'
  • Object.defineProperties(obj, props): 定义多个新属性或修改对象的现有属性。
const obj = {};
Object.defineProperties(obj, {
name: { value: 'Cormier', writable: false },
age: { value: 30, writable: true } });
console.log(obj.name); // 'Cormier'
  • Object.isExtensible(obj): 确定对象是否可扩展(即是否可以添加新属性)。
const obj = {};
console.log(Object.isExtensible(obj)); // true
Object.preventExtensions(obj);
console.log(Object.isExtensible(obj)); // false
  • Object.isFrozen(obj): 确定对象是否被冻结(即不可扩展且所有属性不可写)。
const obj = Object.freeze({ name: 'Gregor' });
console.log(Object.isFrozen(obj));
// output: true
  • Object.hasOwn(obj, prop): 如果指定对象将指定属性作为其自己的属性,则返回 true,即使该属性的值未定义。
const obj = { name: 'Alice' };
console.log(Object.hasOwn(obj, 'name')); // true
console.log(Object.hasOwn(obj, 'age')); // false
  • Object.hasOwnProperty(prop): 确定对象是否包含指定属性作为该对象的直接属性,而不是通过原型链继承。
const obj = { name: 'Alice' };
console.log(obj.hasOwnProperty('name')); // true
console.log(obj.hasOwnProperty('age')); // false
  • Object.preventExtensions(obj): 防止将新属性添加到对象中。
const obj = {};
Object.preventExtensions(obj);
obj.name = 'Khabib'; // Won't be added
console.log(obj); // {}
  • Object.setPrototypeOf(obj, proto): 设置指定对象的原型(内部 [[Prototype]] 属性)。
const proto = { greet() {console.log('Hello!');}};
const obj = {};
Object.setPrototypeOf(obj, proto);
obj.greet(); // 'Hello!'
  • Object.fromEntries(iterable): 将键值对列表转换为对象。
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.keys(obj));
// Output: ['a', 'b', 'c']
  • Object.getPrototypeOf(obj):返回指定对象的原型(内部 [[Prototype]] 属性)。
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.values(obj));
// Output: [1, 2, 3]
  • Object.getOwnPropertySymbols(obj): 返回在对象上找到的所有符号属性的数组。
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.entries(obj));
// Output: [['a', 1], ['b', 2], ['c', 3]]
  • Object.getOwnPropertyDescriptor(obj, prop): 返回给定对象的特定属性的属性描述符。
const obj = Object.seal({ a: 1 });
console.log(Object.isSealed(obj));
// Output: true
  • Object.getOwnPropertyNames(obj): 返回在对象上找到的所有属性(包括不可枚举属性)的数组。
const target = { a: 1 };
const source = { b: 2, c: 3 };
const result = Object.assign(target, source);
console.log(result);
// Output: { a: 1, b: 2, c: 3 }
  • Object.is(value1, value2): 比较两个值是否相同。
const obj = { name: 'Khabib' };
Object.freeze(obj);
obj.name = 'Bob'; // This won't change the value
console.log(obj.name); // Output: 'Khabib'
  • Object.getOwnPropertyDescriptors(obj): 返回对象的所有自有属性描述符。
const obj = { name: 'Alice' };
Object.seal(obj);
obj.name = 'Bob'; // This will update the value
obj.age = 25; // This won't add a new property
console.log(obj); // Output: { name: 'Bob' }

以上是JavaScript 对象方法示例的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn