JS对象的基本用法

1. 声明对象的两种语法

示例:

let obj = {'name': 'frank', 'age': 18}

let obj = new Object({'name': 'frank', 'age': 18})
// 一般使用第一种

2. 如何删除对象的属性

  • delete命令用于删除对象的属性,删除成功后返回true。

  • delete obj.xxx 或者delete obj['xxx'] 这俩种都可以删除对象属性。

  • 下面代码中,delete命令删除对象objp属性。删除后,再读取p属性就会返回undefined,而且Object.keys方法的返回值也不再包括该属性。

    var obj = { p: 1 };
    Object.keys(obj) // ["p"]
    delete obj.p // true
    obj.p // undefined
    Object.keys(obj) // []
    

3. 如何查看对象的属性

  • 查看一个对象本身的所有属性,可以使用Object.keys方法。
    var obj = {
    key1: 1,
    key2: 2
      };
    
    Object.keys(obj);
    // ['key1', 'key2']
    

4. 如何修改或增加对象的属性

  • 修改自身属性,直接赋值,如下代码:

    let obj = {name: 'frank'}
    obj.name; //"frank"
    let key = 'name'
    obj[key] === 'frank' //true 
    
  • 批量赋值,如下代码:

    Object.assign(obj, {color: 'red', age: 18})
    
  • 修改共有属性

    Object.prototype['toString']='xxx'
    //
    obj.__proto__['toString']='xxx' 
    //不推荐这种
    
  • 改原型

    let obj = Object.create(common)
    //
    obj.__proto__=common
    //不推荐这种
    
  • 增加属性

    基本和改一样,已有属性则改,没有属性就增加;

5. 'name' in obj和obj.hasOwnProperty('name') 的区别

  • 他们俩个都是判断属性名是否存在在对象里
  • 区别是in会继承原型链上的属性,而obj.hasOwnPropert不会继承原型链中的属性。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、声明对象的两种语法 let obj = { 'name' : 'frank' , 'age' : 18} le...
    浪味仙儿啊阅读 400评论 0 2
  • 定义 无序的 键(key)值(value)对组合 声明对象的方式 中括号语法:obj['key']----推荐点语...
    张德瘦嬢嬢阅读 239评论 0 0
  • 6种基本数据类型 null undefined string number boolean symobl 5种fa...
    WlSE阅读 298评论 0 0
  • 一、声明对象的两种方法(对象:无序的数据集合&键值对的集合) ·简易声明:let obj = { 'name' :...
    scotton阅读 266评论 0 0
  • (声明:写简书是为了图文在一起,比微信方便) 今天听课时,第一次听到了“三素句”“四素句”,我觉得很稀奇,便听...
    绿窗幽梦_阅读 339评论 1 1