对象的一些方法

删除对象本身上的属性和方法

语法:delete 对象.属性名

var obj = {
    name: 'lucy',
    age: 12
  }
delete obj.age; //删除age属性
console.log(obj)

Object.defineProperty

给对象添加键值对

语法:Object.defineProperty(obj,prop,descriptor)
参数:

  • obj:要设置属性的对象

  • prop:要设置的属性的名称

  • descriptor:是一个对象,要定义或修改的属性描述符
    数据描述符

  • configurable:可以设置属性能否被删除,默认是false

  • enumerable:可以设置属性能否遍历,默认是false

  • value:可以设置属性的值

  • writable: 可以设置属性值是否可写,默认是false
    存取描述符

  • get:是一个函数,当获取属性值的时候会触发

  • set:是一个函数,当设置属性值的时候会触发

eg:给obj添加一个a属性,值是10

1.使用set和get

var obj = {
   name: 'lucy',
   age: 12
 }
Object.defineProperty(obj, 'a', {
   get() {
     console.log('你在获取a属性的值')
     return data; //这个函数的返回值就是获取的a属性的值
   },
   set(value) {
     console.log('你在设置a属性的值')
     data = value;
   }
 })

 console.log(obj.a);//获取
 obj.a = 20; //设置
 console.log(obj.a) //获取

2.使用value和writable

var obj = {
   name: 'lucy',
   age: 12
 }
Object.defineProperty(obj, 'a', {
   value: 10,        //设值
   writable: true,   //可修改
   enumerable: true, //可遍历
   configurable: true //可删除
 })

Object.create

  • 作用:创建一个新对象,可以指定新对象的__proto__
  • 语法:Object.create(新对象的原型,对象本身的属性)
  • 返回值:创建好的新对象
 function Human() {
   this.name = 'jack';
   this.age = 18;
 }
 Human.prototype.sayHi = function () {
   console.log('hello world')
 }
 var h = new Human();
//创建一个对象能够使用Human的属性和方法
 var s = Object.create(h, {
   sex: {
     value: '女'
   }
 })
 console.log(s) 

in运算符

语法:属性名 in 对象
作用: 可以判断对象的属性是否存在,既可以判断`本身的`也可以判断`原型上的`

hasOwnProperty

作用:判断对象的属性是否存在,只能判断`对象本身的`
语法:对象. hasOwnProperty('属性名')

instanceof

作用: 判断一个对象是否是某个构造函数的实例
语法:对象 instanceof 构造函数

Object.assign

作用:es6语法里面的一个方法,可以用于对象的合并
语法:Object.assign(目标对象,要合并的对象)

Object.prototype.toString()

作用:精确判断数据类型
使用:Object.prototype.toString.call(要判断数据类型的变量)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值