现在的位置: 首页 > 综合 > 正文

动态产生函数

2012年08月28日 ⁄ 综合 ⁄ 共 674字 ⁄ 字号 评论关闭

这两天在看John Resig写的精通javascript,这本书以前也看过一遍,限于当时的水平问题,很多地方没有看懂。这段时间又想把这本书再看一遍,结果收获不少。其中发现一个很有意思的写法:

function User(properties) {
	for (var i in properties) { (function(which) {
			var p = i;
			which['get' + p] = function() {
				return properties[p];
			};
			which['set' + p] = function(val) {
				properties[p] = val;
			}
		})(this);
	}
}

这段代码有意思的地方就在于,这个函数的方法是动态的,参数properties是个对象,这个对象有多少个属性,它就有多少个相对应的get和set方法,举个例子:

var my = new User({name:'zjh'});
//那个my这个实例就有getname和setname这两个方法了
alert(my.getname());
my.setname('sky')
alert(my.getname());

现在给参数多加几个属性看看:

var my = new User({name:'zjh',age:18});

那个my这个实例就有getname,setname,getage,setage四个方法了;

alert(my.getname());
my.setname('sky')
alert(my.getname());
alert(my.getage());
my.setage('20')
alert(my.getage());

抱歉!评论已关闭.