Javascript 对象办法是蕴含内置函数定义的属性,java培训用于无效地解决单个对象并从中获取信息。
语法:ObjectName.methodName()
在本文中,咱们将探讨 Javascript 中 7 个最罕用的对象办法,它们将帮忙你更轻松地应用对象原型!
1、 Object.is()
Object.is() 是一种判断两个值是否雷同的办法。
语法:Object.is(value1, value2);
参数:
value1:要比拟的第一个值。
value2:要比拟的第二个值。
返回值:一个布尔表达式,批示两个参数是否具备雷同的值。
例子:
// Case 1: Evaluation result is the same as using ‘===’
Object.is(25, 25); // true
Object.is(‘foo’, ‘bar’); // false
Object.is(foo, foo); // true
// Case 2: Signed zero
Object.is(0, -0); // false
Object.is(0n, -0n); // true
// Case 3: NaN
Object.is(NaN, 0/0); // true
Object.is(NaN, Number.NaN) // true
2、Object.assign()
Object.assign() 办法用于将所有可枚举的本身属性从一个或多个源对象复制到指标对象。
语法:Object.assign(target, …sources)
参数:
target:指标对象——利用源属性的对象,批改后返回。
sources:源对象——蕴含你要利用的属性的对象。
返回值:批改后的指标对象。
例子:
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const returnedTarget = Object.assign(target, source);
console.log(target);
// expected output: Object { a: 1, b: 4, c: 5 }
console.log(returnedTarget);
// expected output: Object { a: 1, b: 4, c: 5 }
留神:如果源对象中的属性具备雷同的键,则指标对象中的属性会被源中的属性笼罩。较晚起源的属性会笼罩较早起源的属性。
3、Object.entries()
Object.entries() 办法返回给定对象本人的可枚举字符串键属性 [key, value] 对的数组。
它相似于应用 for…in 循环进行迭代,除了 for…in 循环还会枚举原型链中的属性。属性的程序与通过手动循环对象的属性值给出的程序雷同。
语法:Object.entries(obj)
参数:
obj:要返回其本人的可枚举字符串键属性 [key, value] 对的对象。
返回值:给定对象本人的可枚举字符串键属性 [key, value] 对的数组。
例子:
const object1 = {name: “David”, age: 23};
for (const [key, value] of Object.entries(object1)) {
console.log(${key}: ${value}
);
}
// “name: David”
// “age: 23”
4、Object.values()
Object.values() 办法返回给定对象本人的可枚举属性值的数组,其程序与 for…in 循环提供的程序雷同。
语法:Object.values(obj)
参数:
obj:要返回其可枚举本身属性值的对象。
返回值:蕴含给定对象本人的可枚举属性值的数组。
例子:
const object1 = {
a: ‘somestring’,
b: 42,
c: false
};
console.log(Object.values(object1));
// expected output: Array [“somestring”, 42, false]
5、Object.prototype.hasOwnProperty()
hasOwnProperty() 办法返回一个布尔值,批示对象是否具备指定的属性作为它本人的属性。
如果指定的属性是对象的间接属性,则该办法返回 true — 即便值为 null 或未定义。如果该属性是继承的或基本没有申明,则返回 false。
语法:hasOwnProperty(prop)
参数
prop:要测试的属性的字符串名称或符号。
返回值:如果对象将指定的属性作为本人的属性,则返回true;否则为false。
例子:
const object1 = {};
object1.property1 = 42;
console.log(object1.hasOwnProperty(‘property1’));
// expected output: true
console.log(object1.hasOwnProperty(‘toString’));
// expected output: false
console.log(object1.hasOwnProperty(‘hasOwnProperty’));
// expected output: false
6、Object.keys()
Object.keys() 办法用于返回给定对象本人的可枚举属性名称的数组,以与一般循环雷同的程序迭代。
语法:Object.keys(obj)
参数:
obj:要返回可枚举本身属性的对象。
返回值:示意给定对象的所有可枚举属性的字符串数组。
例子:
const object1 = {
a: ‘somestring’,
b: 42,
c: false
};
console.log(Object.keys(object1));
// expected output: Array [“a”, “b”, “c”]
7、 Object.prototype.toString()
toString() 办法返回一个示意对象的字符串。当对象将被示意为文本值或以冀望字符串的形式援用对象时,将主动调用此办法 id。默认状况下,toString() 办法由从 Object 继承的每个对象继承。
语法:toString()
返回值:示意对象的字符串。
例子:
function Dog(name) {
this.name = name;
}
const dog1 = new Dog(‘Gabby’);
Dog.prototype.toString = function dogToString() {
return ${this.name}
;
};
console.log(dog1.toString());
// expected output: “Gabby”
留神:对于 Numbers 和 Big Ints,toString() 采纳可选参数 radix,其值必须最小为 2,最大为 36。
8、Object.freeze()
Object.freeze() 办法解冻一个对象,这意味着它不能再被更改。解冻对象可避免向其增加新属性,避免删除现有属性,避免更改现有属性的可枚举性、可配置性或可写性,并避免更改现有属性的值。它还能够避免其原型被更改。
语法:Object.freeze(obj)
参数:
obj:要解冻的对象。
返回值:传递给函数的对象。
例子:
const obj = {
prop: 42
};
Object.freeze(obj);
obj.prop = 33;
// Throws an error in strict mode
console.log(obj.prop);
// expected output: 42
发表回复