1、defineProperty

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

参考网址:

[译]JavaScript中的属性:定义和赋值的区别

http://www.cnblogs.com/ziyunfei/archive/2012/10/31/2738728.html

最新文章

  1. 把你的Project发布到GitHub上
  2. VS2012下X64平台嵌入汇编程序
  3. [转]ping检测网络连接异常
  4. logcat的条数设置
  5. .NET生成缩略图并下载
  6. 20145222黄亚奇《Java程序设计》实验二实验报告
  7. Yii源码阅读笔记(十二)
  8. JavaScript-学习一加载不动
  9. 使用LINQ来简化编程的7个技巧
  10. 异常与诊断(74篇,内含许多WinDBG的文章)
  11. SpringMVC之Controller传递JSON数据到页面
  12. MySQL 开启慢查询日志
  13. 学习javascript数据结构(四)——树
  14. js 屏蔽政治关键字
  15. FL Studio里的常规设置介绍
  16. 使用 jQuery 调用 ASP.NET AJAX Page Method
  17. 在lua中创建字段安全的对象
  18. <Redis Advance><Pipelining><Memory Optimization><Expire><Transactions>
  19. 2018.11.06 洛谷P1941 飞扬的小鸟(背包)
  20. python3 str或bytes转换函数

热门文章

  1. swift新手入门视频教程-08-枚举
  2. 【leetcode】Clone Graph(python)
  3. 手游client思考框架
  4. PHP于Post和Get得到的数据写入到文件中
  5. Unity3D流行的游戏开发人员构建高速检查站系统
  6. jQuery表格排序总成-tablesorter
  7. Js 正则表达式 写了一个正整数或小数点或分数前两个正则表达式
  8. 注册 集 与 删除 -- C
  9. Linux内核和根文件系统引导加载程序
  10. MVC自定义配置