我从 javascript 开始,特别是 OOP 模式。
我的问题很简单。在 setter 中,有没有办法让参数和私有类变量保持相同的名称?我到处寻找,但找不到任何人提到它,只是具有不同 var 名称的示例。我对我的代码非常挑剔,我不得不给它两个不同的名字。
以http://ejohn.org/blog/javascript-getters-and-setters/为例
function Field(val){
this.value = val;
}
Field.prototype = {
get value(){
return this._value;
},
set value(val){
this._value = val;
}
};
您可以在 setter 中看到参数是 val 但属性实际上是值。由于它是 javascript,我不能简单地执行 this.value=value,因为“this”会将其公开。value=value 将同时引用参数(并且会很奇怪)。真的没有办法做到这一点吗?如果没有,这种情况是否有任何“最佳实践”?我想下划线可能是有效的,但我只是很挑剔,所以只想确保没有其他方法。
谢谢!