文档章节

利用__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
OC常量、变量、属性及其特性

1.Objective-C中声明常量使用关键字const。如:const double PI = 3.1514; 2.Objective-C中变量可以分为成员变量、局部变量和全局变量(用的很少,尽量不要用)。 //————————---------...

hejunbinlan
2016/05/16
77
0
Objective-C Runtime 之动态方法解析实践

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

力谱宿云
2016/04/11
670
1
iOS动态特性初研究(利用JSON动态创建类型和对象)

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

whj
2014/03/06
0
0
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

没有更多内容

加载失败,请刷新页面

加载更多

Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
4
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0
搞定Northwind示例数据库,无论哪个版本的SQLServer都受用

Northwind数据库 从这里可以找到突破口: http://social.msdn.microsoft.com/Forums/zh-CN/Vsexpressvb/thread/8490a1c6-9018-40c9-aafb-df9f79d29cde 下面是MSDN: http://msdn2.microsoft......

QQZZFT
昨天
1
0
mysql主从同步,安装配置操作

准备 两台mysql服务,我这里准备了如下: 主库:192.168.176.128 从库:192.168.176.131 如何在Linux上安装mysql服务,请看https://blog.csdn.net/qq_18860653/article/details/80250499 操作...

小致dad
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部