每天一篇javascript学习小结(属性定义方法)


Posted in Javascript onNovember 19, 2015

定义(Definition).定义属性需要使用相应的函数,比如:
Object.defineProperty(obj, "prop", propDesc)
如果obj没有prop这个自身属性,则该函数的作用是给obj添加一个自身属性prop并赋值,
参数propDesc指定了该属性拥有的特性(可写性,可枚举性等).
如果obj已经有了prop这个自身属性,则该函数的作用是修改这个已有属性的特性,当然也包括它的属性值.
1、defineProperty      

var book = {
   _year: 2004,
   edition: 1
  };
   
  Object.defineProperty(book, "year", {
   get: function(){
    return this._year;
   },
   set: function(newValue){
   
    if (newValue > 2004) {
     this._year = newValue;
     this.edition += newValue - 2004;
    
    }
   }
  });
  
  book.year = 2005;
  alert(book.edition); //2

2、__defineSetter__ 和 __defineGetter__

var book = {
   _year: 2004,
   edition: 1
  };
   
  //legacy accessor support
  book.__defineGetter__("year", function(){
   return this._year; 
  });
  
  book.__defineSetter__("year", function(newValue){
   if (newValue > 2004) {
    this._year = newValue;
    this.edition += newValue - 2004;
   } 
  });

  
  book.year = 2005;
  alert(book.edition); //2

以上就是今天的javascript学习小结,之后每天还会继续更新,希望大家继续关注。

Javascript 相关文章推荐
jquery库文件略庞大用纯js替换jquery的方法
Aug 12 Javascript
javascript实现随机生成DIV背景色
Jun 20 Javascript
第一次接触神奇的Bootstrap表单
Jul 27 Javascript
深入理解jquery中的each用法
Dec 14 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
Mar 17 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
May 25 Javascript
vue实现压缩图片预览并上传功能(promise封装)
Jan 10 Javascript
如何能分清npm cnpm npx nvm
Jan 17 Javascript
vue实现文件上传读取及下载功能
Nov 17 Javascript
如何解决vue在ios微信"复制链接"功能问题
Mar 26 Javascript
基于原生JS封装的Modal对话框插件的示例代码
Sep 09 Javascript
微信小程序APP页面的之间的相互传递参数以及自定义组件
Apr 19 Javascript
理解 JavaScript Scoping & Hoisting(二)
Nov 18 #Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
Nov 18 #Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
Nov 18 #Javascript
JavaScript如何获取数组最大值和最小值
Nov 18 #Javascript
原生js模拟淘宝购物车项目实战
Nov 18 #Javascript
JavaScript统计网站访问次数的实现代码
Nov 18 #Javascript
javascript实现添加附件功能的方法
Nov 18 #Javascript
You might like
discuz7 phpMysql操作类
2009/06/21 PHP
php快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
php explode函数实例代码
2012/02/27 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Mac下Supervisor进程监控管理工具的安装与配置
2014/12/16 Python
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
python Opencv将图片转为字符画
2021/02/19 Python
用python做游戏的细节详解
2019/06/25 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
Python读取YAML文件过程详解
2019/12/30 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
Python 存取npy格式数据实例
2020/07/01 Python
怎样让char类型的东西转换成int类型
2013/12/09 面试题
大学毕业生的自我鉴定
2013/11/30 职场文书
简单的辞职信范文
2014/01/18 职场文书
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
2014学年自我鉴定
2014/02/23 职场文书
2014年度培训工作总结
2014/11/27 职场文书
放射科岗位职责
2015/02/14 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技