Javascript 创建GetterSetter类不工作
我有几个变量需要有一个Javascript 创建GetterSetter类不工作,javascript,class,Javascript,Class,我有几个变量需要有一个getter和setter。我想创建一个类,并为变量创建该类的实例,而不是为每个变量创建一个新类 这是我试过的代码,但我得到一个错误(基本上)说test是undefined。我做错了什么?我该如何解决这个问题?还有,这样做常见吗?我是否采取了正确的方法 函数GetterSetter(/**任意值*/Value,/**函数*/getter,/**函数*/setter){ this.set=函数(val){ this.value=val; typeof setter==='f
getter
和setter
。我想创建一个类,并为变量创建该类的实例,而不是为每个变量创建一个新类
这是我试过的代码,但我得到一个错误(基本上)说test
是undefined
。我做错了什么?我该如何解决这个问题?还有,这样做常见吗?我是否采取了正确的方法
函数GetterSetter(/**任意值*/Value,/**函数*/getter,/**函数*/setter){
this.set=函数(val){
this.value=val;
typeof setter==='function'&&setter();
log(“实际设置器”);
};
this.get=函数(){
getter的类型==='function'&&getter();
log(“实际的getter”);
返回此.value;
};
(typeof value!==“未定义”&&value!==null)&&this.set(值);
}
var test=GetterSetter('hello',function(){
log('customgetter');
},函数(){
log('customsetter');
});代码>
您在此处缺少一个新的
:
var test = new GetterSetter(...);
这意味着GetterSetter
中的This
是全局窗口
对象,而不是新实例,test
是GetterSetter
的实际返回值(它不返回任何内容,因此未定义
)
您在此处缺少一个新的
:
var test = new GetterSetter(...);
这意味着GetterSetter
中的This
是全局窗口
对象,而不是新实例,test
是GetterSetter
的实际返回值(它不返回任何内容,因此未定义
)。感谢您的快速回答!(我怎么可能没有看到呢?哈哈)这是个好习惯吗?这样做很普遍吗?你的意思是“在JS良好实践中使用new
关键字”吗?简短回答:这没有什么错,这是一个常见的范例。长答案:这是另一个问题,这里有几个答案:@assimilator我的意思是GetterSetter
是我练习得很好的课程吗?谢谢你的快速回答!(我怎么可能没有看到呢?哈哈)这是个好习惯吗?这样做很普遍吗?你的意思是“在JS良好实践中使用new
关键字”吗?简短回答:这没有什么错,这是一个常见的范例。长答案:这是另一个问题,这里有几个答案:@assimilator我的意思是GetterSetter
我练习得很好吗?