js 中getter setter具体有什么意义? 就是说,定义这种存取器是用来做什么的呢?
2个回答
展开全部
只是一个包,但是,你要实现什么功能呢?其实实际使用时,可以
function User(props){
for(var prop in props){
(function(currentObj){ //这里的currentObj由this传过来的。this 为 User
alert(currentObj.constructor); //可以看出来currentObj 为User
//创建此属性的一个新的getter(读取器)
currentObj["get"+prop] = function(){
//alert(props.name+" "+props.age+" "+prop);
return props[prop];
}
//创建此属性的一个新的setter(设置器)
currentObj["set"+prop] = function(val){
props[prop] = val;
};
})(this); //这里的this 为 User
}
}
var user = new User({"name":"chengkai","age":22});
//注意,name属性并不存在,因为它是属性对象(props Obj)的私有变量
alert(user.name == null); //输出 true
alert(user.getname()); //输出 22
alert(user.getage()); //输出 22
function User(props){
for(var prop in props){
(function(currentObj){ //这里的currentObj由this传过来的。this 为 User
alert(currentObj.constructor); //可以看出来currentObj 为User
//创建此属性的一个新的getter(读取器)
currentObj["get"+prop] = function(){
//alert(props.name+" "+props.age+" "+prop);
return props[prop];
}
//创建此属性的一个新的setter(设置器)
currentObj["set"+prop] = function(val){
props[prop] = val;
};
})(this); //这里的this 为 User
}
}
var user = new User({"name":"chengkai","age":22});
//注意,name属性并不存在,因为它是属性对象(props Obj)的私有变量
alert(user.name == null); //输出 true
alert(user.getname()); //输出 22
alert(user.getage()); //输出 22
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询