文档章节

利用__define_setter__和 __define_getter__ 定义动态的对象属性

小骏骏
 小骏骏
发布于 2015/12/02 17:06
字数 152
阅读 36
收藏 0
  1. ES5 标准 的例子

  var obj = {
		   get foo() {
		 return Math.random() > 0.5 ? 'foo' : 'bar';
	  }
   };  
   var sum = '';
   for(var i=1; i<10; i++) {
       sum += obj.foo + "\n"; //'foo' or 'bar' randomly ?   
    }
   alert(sum);

   最终弹出的10行字符串都是随机出现的

foo

foo

foo

bar

bar

bar

foo

foo

foo

 2.  你也可以自已写,可以把

 
				function Tester(str) {

					var colors = {
						red : ['red_', '_r'],
						green : ['red_', '_r'],
						gray : ['gray_', '_g']
					};

					var self = this;

					for(var i in colors) {
						var ars = colors[i];
						self.__defineGetter__(i, function() { 
							var rs = ars[0] + str + ars[1]; 
							  return rs;
						});
					} 
				}

				var t = new Tester("Hello!");
				     alert(t.red);


© 著作权归作者所有

共有 人打赏支持
小骏骏
粉丝 8
博文 111
码字总数 22428
作品 0
厦门
高级程序员
私信 提问
Ext 4 概述(二)之Ext Core

Ext Core 新型类系统 参考资源 Ext JS 4的倒数:动态加载和新的类机制(上) Ext JS 4的倒数:动态加载和新的类机制(下) Ext JS 4 的类机制主要围绕传统OO模型而设计,弥补了Prototype OO不...

sp42
2011/04/18
0
0
构建现代化的 Objective-C

当学习一个新技能时,比如编程语言,我们经常为了能运行,而把所有能用的都揉合在一起。再后来,我们回归到这些习惯,并进行重新估计,采用社区中的最佳实践并写出更好、更有结构化的代码。 ...

isaced
2014/02/21
3.3K
10
Objective-C Runtime 之动态方法解析实践

作为一种动态编程语言,Objective-C 拥有一个运行时系统来支持动态创建类,添加方法、进行消息传递和转发。利用 Objective-C 的 Runtime 可以实现一些很棒的功能。本篇文章会简单介绍一下消动...

力谱宿云
2016/04/11
708
1
Ext JS 4的倒数:动态加载和新的类机制 Count down to Ext JS 4: Dynamic Loading and New Class System (上)

Ext JS 4的倒数:动态加载和新的类机制 Count down to Ext JS 4: Dynamic Loading and New Class System (上) January 19, 2011 by Ed Spencer 翻译 Ext中文网(ajaxjs.com) Frank http:/......

sp42
2011/01/20
0
0
iOS动态特性初研究(利用JSON动态创建类型和对象)

1.什么是动态特性? 程序可以访问,检测和修改它本身状态或行为的能力。用我自己的理解,这里的状态和行为,理解成变量,属性和方法,会更加形象一点。 2.与动态特性相关的概念,selector,IMP...

whj
2014/03/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
今天
1
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
3
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
3
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
5
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部