Object.defineProperty 详解

最近想了解一下Vue是怎么实现数据双向绑定的,了解到是基于Object.definProperty,在此记录一下。

Object.defineProperty  顾名思义,就是给对象定义一个属性,总共有这么几种:

  • value  属性的值
  • writable  是否可改写,如果为false,就为只读,不能重新赋值,和const差不多
  • enumerable  能否枚举,如果设置为false则不能在for……in中出现  
  • configurable   ’配置‘,顾名思义,一旦为false,就不能再设置他的(value,writable,configurable)
  • 不能同时设置访问器 (get 和 set) 和 wriable 或 value,否则会错,就是说(get 和 set)和(wriable 或 value中的任何一个)只能取其一

  • get  读取时调用这个方法
  • set  赋值时调用这个方法

 随便写点东西

<script>var c = {year:2017};Object.defineProperty(c,'a',{
     // 注意这里不能直接不能对a直接赋值,否则会无限回调set:
function(val){console.log(`I set the value ${val}`);},get:function(){return this}})</script>

 分别赋值和取值:

 

set的时候正确的调用了方法,但是取值的时候如果写return this.a

就会报错,栈溢出。看上面的图我们就明白了,a的值指向自身,如果直接打印就会无限回调,虽然我们不能取到a,但我们能通过a取到其他属性

修改get:

set:function(val){this.year = val
},
get:function(e){return this.year
}

  

 

转载于:https://www.cnblogs.com/lastnigtic/p/6800330.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252768.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

相机帧率和曝光时间的关系

文章转载自&#xff1a;http://blog.163.com/pluto_918/blog/static/203853902012111255634175/ 工业相机参数之帧率相关知识详解&#xff1a; 工业相机是机器视觉系统的重要组成部分之一&#xff0c;在机器视觉系统中有着非常重要的作用。工业相机已经被广泛应用于工业生产线…

SlickOne 敏捷开发框架介绍(二) -- 多用户/多租户/SAAS软件基础框架实现

前言&#xff1a;在应用于集团版客户或SAAS平台服务的业务系统中&#xff0c;流程管理系统需要支持多用户组织模型。其中包括角色数据、流程定义数据和流程实例数据的多用户标识绑定。本文旨在全面描述如何基于SlickOne敏捷开发框架实现上述基础服务功能&#xff0c;形成一个完…

工业相机行曝光与全局曝光

工业相机行曝光与全局曝光 逐行曝光&#xff1a; 图1 逐行曝光模式 逐行曝光sensor 实现如图1逐行曝光模式所示。与全局曝光不同&#xff0c;逐行曝光从第一行开始曝光&#xff0c;一个行周期之后第二行才开始曝光。依次类推&#xff0c;经过N-1 行后第N 行开始曝光。第一行曝光…

【Alpha阶段汇总】成果展示与体验总结

一、燃尽图 二、软件截图 三、代码与图片、音乐素材仓库 git仓库 四、问题与总结 1.git提交问题 之前创建的仓库地址是http://git.oschina.net/8265559926/groupnet14 但是无论怎么输入都说找不到仓库 经反复思考&#xff0c;感觉可能是因为地址不是纯字母的原因。就重新注册了…

JDBC批量操作性能提升

JDBC当使用INSERT INTO....VALUES()语句批量插入的时候&#xff0c;应该使用JDBC的PreparedStatement的批量操作方法&#xff0c;而不是採用一条一条运行的方法。比如&#xff08;来源&#xff1a;http://superjavason.iteye.com/blog/255423&#xff09;&#xff1a;如上图&am…

SVAC 2.0安全系统组成

SVAC2.0标准的一个很主要的特点就是视频安全和加密认证相比SVAC1.0更加规范&#xff0c;在视频安全方面更加重视。 通过信源层面的加密技术&#xff0c;实现端到端视频数据加密&#xff0c;构建更强大、更完整的视频安全体系。基于SVAC 2.0标准研究建立的安全系统&#xff08;…

【技术知识】SVAC 2.0安全技术浅析

2017-09-26 08:52 加密可以有效保护数据的机密性&#xff0c;防止非授权访问和非法监听。签名可以识别视音频的产生源以及所对应的视音频数据是否完整或被篡改。SVAC 2.0标准规定了加密和签名接口及数据格式&#xff0c;支持对数据的安全保护&#xff0c;以统一的语法格式支持…

别再管你的API叫微服务了

你有没有听过这句名言&#xff1a;“计算机科学领域只有两个难题&#xff0c;缓存失效和命名”&#xff1f;据说这句话是Phil Karlton在1996年或1997年左右说的。围绕这句格言确实出现了很多带有喜剧色彩的说法&#xff0c;它们也提到了其他的一些问题&#xff0c;但最近我对AP…

第一篇JavaScript基础

1.什么是JavaScript 2.核心语法&#xff0c;变量 先声明&#xff0c;再赋值 var i;i0; 同时声明并赋值变量 var x,y,z0; 不声明直接赋值u2&#xff08;变量可以不经过声明直接赋值&#xff0c;但是容易出错&#xff0c;这种方法不建议采纳&#xff09;3. 3.核心语法&#xff0…

透过迷雾不再迷茫 浅析海康威视透雾技术

频监控的需求主要分为两类&#xff0c;白天的需求和夜间的需求。夜间效果主要的提升之道以低照度和补光居多&#xff0c;也就造成了现在市面上白光补光、红外补光、激光补光等各式各样的摄像机盛行;非补光类的&#xff0c;当属星光级超级照度是为当下热门。而关于白天效果的提升…

抓包工具

前言&#xff1a; Charles是在 Mac 下常用的网络封包截取工具&#xff0c;在做移动开发时&#xff0c;我们为了调试与服务器端的网络通讯协议&#xff0c;常常需要截取网络封包来分析。 一、主界面介绍 二、网页抓包 启动 Charles 后&#xff0c;需要将 Charles 设置成系统代理…

详解Session分布式共享(.NET CORE版)

一、前言&回顾 在上篇文章Session分布式共享 Session Redis Nginx中&#xff0c;好多同学留言问了我好多问题&#xff0c;其中印象深刻的有&#xff1a;nginx挂了怎么办&#xff1f;采用Redis的Session方案与微软Session方案相比&#xff0c;有什么优势呢&#xff1f;Co…

浅析透雾监控镜头的四大透雾技术

透雾摄像机在雾天中的作用毋容置疑&#xff0c;YAMAKO透雾镜头早已获得用户的认可&#xff0c;如今&#xff0c;高清透雾摄像机的问世&#xff0c;很大程度上得益于透雾高清电动镜头&#xff0c;但摄像机本身的透雾原理也在近端时间获得极大的进步。 透雾技术主要分为四种&…

外网访问原理分析

本节我们会将上节创建的 ext_net 连接到 router&#xff0c;并验证内外网的连通性。 更重要的&#xff0c;我们会分析隐藏在表象之下的原理。 将外网连接到 Neutron 的虚拟路由器&#xff0c;这样 instance 才能访问外网。 点击菜单 Project -> Network -> Routers 进入 …

URAL1519 Formula 1 —— 插头DP

题目链接&#xff1a;https://vjudge.net/problem/URAL-1519 1519. Formula 1 Time limit: 1.0 secondMemory limit: 64 MBBackground Regardless of the fact, that Vologda could not get rights to hold the Winter Olympic games of 20**, it is well-known, that the city…

2018年中国视频监控行业发展空间巨大 AI技术赋能发展乃是未来必然趋势

https://bg.qianzhan.com/report/detail/459/190131-c2610ca0.html2019-2024年中国视频监控设备行业市场需求预测与投资战略规划分析报告2019-2024年中国安防行业市场前瞻与投资战略规划分析报告2019-2024年中国智能安防行业市场前瞻与投资战略规划分析报告2019-2024年中国智能…

FTP下载文件

今天公司有需求&#xff0c;需要从远程FTP服务器上下载文件到本地代码。然后看了一下&#xff0c;顺便做个记录 什么是FTP呢&#xff1f; 详细百度百科 FTP 是File Transfer Protocol&#xff08;文件传输协议&#xff09;的英文简称&#xff0c;而中文简称为“文传协议”。用…

2018年中国视频监控行业现状及行业发展趋势分析预测【图】

一、中国视频监控行业现状 中国 2013-2018 年模拟标清视频监控摄像机和模拟高清视频监控摄像机的复合增长率分别为-15.2%、 29.6%。 模拟标清视频监控摄像机需求量不断下降&#xff0c; 预计 2018 年同比下降 13%&#xff0c; 将下降到 0.38 亿台。 模拟高清视频监控摄像机需求…

C#中控制线程池的执行顺序

在使用线程池时&#xff0c;当用线程池执行多个任务时&#xff0c;由于执行的任务时间过长&#xff0c;会导制两个任务互相执行&#xff0c;如果两个任务具有一定的操作顺序&#xff0c;可能会导制不同的操作结果&#xff0c;这时&#xff0c;就要将线程池按顺序操作。下面先给…