Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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
没有这个、那个、self等的JavaScript类_Javascript - Fatal编程技术网

没有这个、那个、self等的JavaScript类

没有这个、那个、self等的JavaScript类,javascript,Javascript,不使用“this”关键字就可以创建JavaScript类吗?表达方式如 var self = this; ... self.property = value; 这也是禁止的。我不想考虑上下文,只使用vars 看看这个简单的类: 函数计时器(){ var区间=0; var count=++Timer.totalCount; 函数设置间隔(val){ 间隔=val; } 函数运行(){ 设置超时(完成,间隔); } 函数完成(){ var div=document.createElement('

不使用“this”关键字就可以创建JavaScript类吗?表达方式如

var self = this;
...
self.property = value;
这也是禁止的。我不想考虑上下文,只使用vars

看看这个简单的类:

函数计时器(){
var区间=0;
var count=++Timer.totalCount;
函数设置间隔(val){
间隔=val;
}
函数运行(){
设置超时(完成,间隔);
}
函数完成(){
var div=document.createElement('div');
div.innerHTML='Timer#'+count+'finished in'+interval+'ms';
文件.正文.附件(div);
}
返回{
setInterval:setInterval,
跑:跑
}
}
Timer.totalCount=0;
var t1=新计时器();
var t2=新计时器();
var t3=新计时器();
//如何在没有设置函数的情况下直接设置区间值?
t1.设定间隔(3000);
t2.设定间隔(2000年);
t3.设定间隔(1000);
t1.run();
t2.run();

t3.run()首先,
这是JavaScript中的一个基本内容。非常建议您能够理解它并对其上下文进行推理

如果您想要一个更“传统”的OOP代码,并且能够使用ES6/ES2015(或者使用Babel进行传输),那么关于
的所有推理也会变得更简单,所有代码都会更干净。以下是使用ES2015重写的示例,包括继承部分:

类计时器{
构造函数(计数、间隔){
this.interval=interval
this.count=count
}
运行(){
设置超时(()=>{
const div=document.createElement('div')
div.innerHTML=`Timer#${this.count}
在${this.interval}毫秒内完成`
document.body.appendChild(div)
},此。间隔)
}
}
类OneSecondTimer扩展了计时器{
构造函数(计数){
超级(计数,1000)
}
}
常数t1=新定时器(1,3000)
常数t2=新定时器(22000)
常数t3=新的OneSecondTimer(3)
t1.run()
t2.run()

t3.run()
我最大的问题是。。。为什么?那么你的代码有什么问题?