对象 | Object_API

Object的API众多且重要,按照Object原型方法、进行分类

Object原型方法(所有实例共享)

以下方法来自于Object.prototype,参考《红宝书》P56

(1)constructor

用于创建当前对象的函数

(2)hasOwnProperty(propertyName)

用于判断当前对象实例(不是原型)上是否存在给定的属性,要检查的属性名必须是字符串(如obj.hasOwnProperty("name"))或Symbol

let person = {
   
    name: 'Katrina'
};

console.log(person.hasOwnProperty('name'));   // true
(3)isPrototypeOf(object)

用于判断当前对象是否为另一个对象的原型

let person = {
   
    name: 'Katrina',
    age: 18,
};

let p = Object.create(person);
console.log(person.isPrototypeOf(p));   // true
(4)propertyIsEnumerable(propertyName)

用于判断给定的属性是否可以使用for-in 语句枚举,属性名必须是字符串

let person = {
   };

Object.defineProperty(person, 'name', {
   
	enumerable:true,
	value: 'Katrina',
});

Object.defineProperty(person, 'age', {
   
	enumerable:false,
	value: 18,
});

console.log(person.propertyIsEnumerable('name'));  // true
console.log(person.propertyIsEnumerable('age'));   // false
(5)toLocaleString()

返回对象的字符串表示,该字符串反映对象所在的本地化执行环境

let person = {
   
    name: 'Katrina',
    age: 18,
};

person.toLocaleString();  // '[object Object]'
(6)toString()

返回对象的字符串表示

let person = {
   
    name: 'Katrina',
    age: 18,
};

person.toString();  // '[object Object]'
(7) valueOf()

返回对象对应的字符串、数值或布尔值表示,通常与toString()的返回值相同

let person = {
   
    name: 'Katrina',
    age: 18,
};

console.log(person.valueOf());   // {name: Katrina, age: 18}

设置原型方法

(1)Object.create() 【ES5】

Object.create()用于创建一个新对象,使用现有的对象来作为新创建对象的原型。

语法如下:

Object.create(proto);
Object.create(proto, propertiesObject);

参数说明:

proto:新建对象的原型对象

propertiesObject(可选):传入对象的可枚举属性将为新创建的对象添加指定的属性值和对应的属性描述符,这些属性对应于Object.defineProperties()的第二个参数

返回值:

一个新对象,带着指定的原型对象及其属性

let person = {
   
    name: 'Katrina',
    age: 18,
};

let p = Object.create(person);
console.log(person.isPrototypeOf(p));   // true
(2)Object.setPrototypeOf(obj, prototype) 【ES6】

Object.setPrototypeOf()方法设置一个指定的对象的原型 ( 即,内部 [[Prototype]] 属性)到另一个对象或

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值