Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建GetterSetter类不工作_Javascript_Class - Fatal编程技术网

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
我练习得很好吗?