博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4、ES5对Object对象的扩展。
阅读量:7076 次
发布时间:2019-06-28

本文共 910 字,大约阅读时间需要 3 分钟。

hot3.png

1、给对象增加属性。

当我们有一个对象,想给这个对象增加一个属性。可以用如下方法实现:

直接给obj对象增加sex属性。

2、使用Object.defineProperties为对象增加属性。

   Object.defineProperties(object,propertyDescriptors)的定义

  • object给哪个对象增加属性。
  • propertyDescriptors 对增加的属性进行描述。 

propertyDescriptors 用来描述属性的。可以有下面几个参数。

  •  value 属性的值。
  • configurable 属性是否能被删除。默认false。
  • writable 属性是否能修改。默认false。
  • enumerable 属性是否能用 fro in枚举,默认false。
  • get 属性的get方法。
  • set 属性的set方法。

例子如下:

  

3、创建对象的时候。直接定义get、set

下面的代码在创建对象的时候,定义了fullName属性的get、set方法。效果和上面一样。

4、使用Object.create创建对象。

Object.(object,propertyDescriptors)方法,用给定的对象object做模板创建一个新的对象。也就说创建的新对象继承了object的所有属性。

例子如下:

这里需要注意:

-- 改变了原始对象的age属性,扩展对象的age属性也被改变

    obj.age = 2018;
    console.log(objExt.age);//输出2018 , 改变原始的age属性,继承的属性会被改变。
--如果扩展对象重新增加了一个属性,覆盖了原始对象的属性,那这时候改变原始对象的username属性,不会改变扩展对象的username属性。
    objExt.username="李四";
    obj.username = "王5";//改变了原始对象的username属性,不会改变扩展对象的username属性。
    console.log(objExt.username);

 

 

 

转载于:https://my.oschina.net/kunBlog/blog/1634484

你可能感兴趣的文章
Git详解之三 Git分支(第二部分)
查看>>
linux 下 ant 安装配置
查看>>
数据库 性能对比
查看>>
Linux下curl命令的使用
查看>>
列出目录下所有文件
查看>>
如何利用HTTP缓存提高网页性能
查看>>
在Silverlight中动态绑定页面报表(PageReport)的数据源
查看>>
Oracle审计与数据库防火墙(AVDF)官方文档
查看>>
Spring Custom Bean with BeanPostProcessor
查看>>
Dark Themed Tab View
查看>>
BobMusic
查看>>
谈谈Ms Chart和TeeChart的优缺点
查看>>
Android FM模块学习之四源码解析(一)
查看>>
人生最重要的三种能力,不是读书能学来的
查看>>
JDK中文方框乱码问题
查看>>
关于技术
查看>>
adb学习2
查看>>
面试之STAR法则详解
查看>>
inno安装
查看>>
禁用缓存的设置
查看>>