Object.defineProperty方法可以在一个对象上定义一个新的属性,或者修改该对象原有的属性,并返回该对象。

基础的语法格式如下:

 1 var data = {}//定义一个对象
2 Object.defineProperty(data,'name',{
3 configurable:false,//设置对象的属性是否可以被修改/删除(默认为false)
4 enumerable:false,//设置对象的该属性是否可以枚举(默认为false)
5 value:111,//设置对象该属性的值(数值,对象,函数等)默认为undefined
6 writable:false,//设置对象该属性的值是否可以修改(默认为false)
7 //get函数,函数的返回值被用作属性的值
8 //set函数,属性值被修改时,调用此函数。
9
10
11 })

可以利用该属性,实现vue的双向绑定:

1 <input type="text" id="text" placeholder="请输入你的名字" />
2 <p id="textshow"></p>
 1 var obj = {}
2 Object.defineProperty(obj,'name',{
3 set(val){
4 $('#text').val(val);//设置或返回表单字段的值
5 $('#textshow').text(val);//设置或返回元素的文本内容
6 },
7 get(){}
8 })
9 $('#text').keyup(function(event){
10 obj.name = event.target.value;
11 })
12 console.log(obj)

实现效果如图所示:

当在控制台设置属性的值,dom页面也会做出改变

实现效果如图所示:

当对象需要设置多个属性时,可以使用Object.defineProperties

语法格式为:

 1 var obj = {};
2 Object.defineProperties(obj, {
3 'property1': {
4 value: true,
5 writable: true
6 },
7 'property2': {
8 value: 'Hello',
9 writable: false
10 }
11 // etc. etc.
12 });

好的,第一篇随笔结束,完结,撒花!

最新文章

  1. java中对final关键字的理解以及使用场景
  2. JSP网站开发基础总结《十一》
  3. Map 对象
  4. magento url rewrite
  5. VC 为静态控件添加事件
  6. dplyr 数据操作 常用函数(4)
  7. web console实现
  8. 如何面试 PHP 工程师?
  9. VS2010安装Boost库
  10. 使用Update Strategy组件无法进行delete操作
  11. 使用mybatis-spring-boot-starter如何打印sql语句
  12. LOJ 2542 「PKUWC2018」随机游走 ——树上高斯消元(期望DP)+最值反演+fmt
  13. matlab 函数句柄@的介绍_什么是函数句柄(转)
  14. poj 食物链
  15. POJ 3169 Layout (spfa+差分约束)
  16. eureka -2 - 重要配置
  17. 几个与特殊字符处理有关的PHP函数(过滤html js 标签)
  18. 关于std::ios::sync_with_stdio(false)
  19. MSSQL中循环
  20. HashTable 元素的查找

热门文章

  1. springboot 集成poi导出word(一)
  2. 220205_问题解决_python批量创建变量及赋值
  3. JSP课设:学生选课系统(附源码+调试)
  4. tfidf与bm25
  5. 根据XML生成实体类
  6. PostgreSQL 解析json字段
  7. stream 链式结构
  8. 用python3操作mysql数据库实现企业级产品参数查询
  9. python_列表和元组的转换
  10. Mysql语句练习