Javascript 理解命名访问器属性
最后,给出了命名访问器属性的属性。让我们创建命名访问器属性,例如Javascript 理解命名访问器属性,javascript,Javascript,最后,给出了命名访问器属性的属性。让我们创建命名访问器属性,例如 var o=Object.create({},{bar:{get: function(){ return 10;}, set: function(value){ console.log("o.bar is", value)}}}) o.bar=550; 没关系。在控制台中,我们有o.bar是550。但我有一些疑问。命名访问器属性没有值属性。那么哪个属性被分配给550呢
var o=Object.create({},{bar:{get: function(){ return 10;},
set: function(value){ console.log("o.bar is", value)}}})
o.bar=550;
没关系。在控制台中,我们有o.bar是550
。但我有一些疑问。命名访问器属性没有值
属性。那么哪个属性被分配给550呢
我们如何返回这个赋值?我试图重写get
函数,如下所示:
get: function(){ return value;}
但我有一个错误:
[15:59:41.418] ReferenceError: value is not defined @ http://fiddle.jshell.net/_display/:26
请解释命名访问器属性是如何工作的
命名的accesor属性没有value属性。那么哪个属性被分配给550呢
没有,你必须在你的二传手上做。这不是自动完成的
我们如何返回这个赋值
从你保存它的地方。例如,对此使用闭包是相当常见的(为了清楚起见,我将其放在多行上):
|
浓缩版,如果你喜欢这类东西::-)
var o=Object.create({},(function() {
var _bar = 10;
return {
bar:{
get: function(){
return _bar;
},
set: function(value){
_bar = value;
console.log("bar set to " + _bar);
}
}
};
})());
o.bar=550;
console.log("o.bar = " + o.bar);
var o=Object.create({},(function() {
var _bar = 10;
return {bar:{get: function(){ return _bar; },
set: function(value){ _bar = value; console.log("bar set to " + _bar); }}};
})());
o.bar=550;
console.log("o.bar = " + o.bar);