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) 方法会直接在一个对象上定义一 ...
随机推荐
- 【阿里云ACP】-02(弹性储存、对象储存OSS)
弹性网卡 弹性网卡: 是一种可以附加到专有网络VPC类型ECS实例上的虚拟网卡.通过弹性网卡,您可以在任何阿里云地域下实现高可用集群搭建.低成本故障转移和精细化的网络管理. 弹性网卡属性: 属性 规格 ...
- TPM 2.0 - could not load "libtss2-tcti-tabrmd.so.0"
报错: TPM 2.0 - could not load "libtss2-tcti-tabrmd.so.0" 解决:sudo apt install libtss2-tcti-t ...
- viewport适配解决方案
viewport的单位vw.vh vw.vh将viewport分成了一百份.vw即 viewport width vh即viewport height 1vw等于视图单位的1%的宽度 1vh等于视图单 ...
- pdf在线预览 ng2-pdf-viewer的运用
angular项目在线预览PDF 1 安装 ng2-pdf-viewer yarn add ng2-pdf-viewer 2 在项目中添加 import { NgModule } from '@ang ...
- vue clickoutside 点击元素以外的区域隐藏该元素
一.什么是VueUseVueUse不是Vue.use !!!它是一个基于 Composition API 的实用函数集合,下面是具体的一些用法二.如何引入import { 具体方法 } from '@ ...
- 肖sir__网页线下面试
第一题: 设计一下两个两位数相加的测试用例,说只能写数字不要写文字 第二题 淘宝订单怎么测试 功能测试: 1.测试订单输入的类型 2.测试金额数量:可创建等价类划分 3.测试库存数量变更 4.测试订单 ...
- 2022-04-13内部群每日三题-清辉PMP
1项目经理正在执行一个资源有限,期限严格的引人注目的项目.该项目目前落后于进度,对资源平衡的审查显示,一些资源被过度分配.请问项目经理应该怎么办? A.重新分配来自另一个项目不必要的资源 B.为延迟的 ...
- Ubuntu18.04 右上角网络连接消失问题记录
问题记录 因为一块板子要访问远程桌面,需要联网才行,然后发现桌面右上角的网络连接标志不见了,而且无论用usb共享网路,或者是无线网卡,都连不上网. 首先想是不是硬件的问题,给系统重新装了一个ubunt ...
- ESP8266_RTOS_SDK更新子模块出错git remote: [session-f0448081] 404 not found!
报错:git remote: [session-f0448081] 404 not found! 在.git文件夹中的config文件中找到子模块的地址,用浏览器打开发现确实没有对应的子模块仓库,这个 ...
- unity读取Excel表格保存到Sqlite数据库
1.读取Excel表格和保存sqlite数据库所用到的dll文件 下载链接:dll文件 最后如下图所示 废话不多说了,直接上代码吧 因为太长就折叠了 using System.Collection ...