JavaScript的Object.defineProperty( )方法
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 });
好的,第一篇随笔结束,完结,撒花!
JavaScript的Object.defineProperty( )方法的更多相关文章
- JavaScript使用Object.defineProperty方法实现双数据绑定
Object.defineProperty这个方法非常值得学习,很多mvc框架中的双向数据绑定就是通过它来实现的. 本着互联网分享精神,今天我就将我自己的见解分享给大家,希望能有所帮助. 开始使用 O ...
- JavaScript Object.defineProperty()方法详解
Object.defineProperty() 方法直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. 语法 Object.defineProperty(obj, prop ...
- Object.defineProperty方法 使用
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象. 语法: Object.defineProperty(obj, pr ...
- Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. 语法EDIT Object.defineProperty(obj, ...
- Vue el与data的两种写法 && Object.defineProperty方法
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8" /> 5 & ...
- javascript之Object.defineProperty的奥妙
直切主题 今天遇到一个这样的功能: 写一个函数,该函数传递两个参数,第一个参数为返回对象的总数据量,第二个参数为初始化对象的数据.如: var o = obj (4, {name: 'xu', age ...
- Object.defineProperties()和Object.defineProperty()方法
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象. 语法:Object.defineProperty(obj, pro ...
- js中Object.defineProperty()方法的解释
菜菜: “老大,那个, Object.defineProperty 是什么鬼?” 假设我们有个对象 user ; 我们要给它增加一个属性 name , 我们会这么做 1 2 3 var user = ...
- ES5 Object.defineProperty 方法
先看一个例子: var o = {}; o.a = 1; // 等待于: Object.defineProperty(o, 'a', { value: 1, writable: true, confi ...
- Object.defineProperty方法
Object.defineProperty() (一次添加/修改一个属性) 用法:Object.defineProperty(obj, prop, descriptor) 方法会直接在一个对象上定义一 ...
随机推荐
- sublime4 支持中文
sublime_text_build_4143_x64_setup 安装完毕后,工具,命令面板,install package,ChineseLocalizations
- 微信小程序监听view到顶部的高度
view style='width:100%;height:80rpx;' id='navigation'></view> wx.createSelectorQuery().sele ...
- Prometheus API说明
本文来自Prometheus官网手册 和 Prometheus简介,https://www.cnblogs.com/zhoujinyi/p/11955131.html HTTP API 在Promet ...
- shopt 内置命令启用shell选项 (extglob)
使用shopt 内置命令启用shell选项 (extglob) 则会识别几个扩展模式匹配运算符 模式列表是由 | 分割 查看shell选项 extglob shopt |grep extglob 启动 ...
- rest-assured:外部数据驱动之通过CsvFile数据源来使用外部数据源(org.junit.platform.commons.PreconditionViolationException: Classpath resource [repo.csv] does not exist)
代码: package ghcdgj.restful.framework;import static io.restassured.RestAssured.given;import static io ...
- win10 python mysqlclient 安装问题 已解决
用习惯了Linux 忽然换到win10 超级不习惯 今天下午就一个mysqlclient 安装弄了好长时间 ,最后发现是得改名 真是想爆粗口. 下面直接进入正题: 下载地址 https:/ ...
- MySQL同步部分库注意的问题
同步部分库或部分库表 复制部分库:replicate_do_db 复制排除部分库:replicate_ignore_db 复制部分表:replicate_do_table 复制排除部分表:replic ...
- Jenkins多节点python环境隔离(Windows)
Jenkins多节点python环境隔离(Windows) 使用Jenkins构建过程中,需要使用多个Jenkins节点并发构建 由于条件限制,只有一台Windows宿主机,所以在这台宿主机上部署多个 ...
- jmeter参数化时最常用随机函数
邮箱类: ${__RandomString(8,abcdefghijklmnopqrstuvwxyz,)}@126.com 手机号类: ${__Random(18000000000,189999999 ...
- ES6的模块化(import引入)
先做个前提,新建三个模块JS文件m1,m2,m3,其中m1.js 为分别暴露,m2.js 为统一暴露,m3.js 为默认暴露.接下来进行文件的import引入 1.通用的引入方式,这种方式适合任何暴露 ...