Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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 这个变量来自哪里?_Javascript_Vue.js_Vuejs2 - Fatal编程技术网

Javascript 这个变量来自哪里?

Javascript 这个变量来自哪里?,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我从一本书中看到了这个例子 我不明白的是这个区间变量是从哪里来的 它不是在数据块内部定义的,您不能仅仅通过给它赋值来创建变量 它是javascript中的全局变量吗 const POMODORO_STATES={ 工作:“工作”, 休息:“休息” }; 常量状态={ 开始:“开始”, 停止:“停止”, 暂停:“暂停” }; 常数工作时间长度单位为分钟=1; 常数休息时间长度单位为分钟=5; 新Vue({ el:“#应用程序”, 数据:{ 状态:STATES.STOPPED, 分钟:工作时间长度

我从一本书中看到了这个例子

我不明白的是这个区间变量是从哪里来的

它不是在数据块内部定义的,您不能仅仅通过给它赋值来创建变量

它是javascript中的全局变量吗

const POMODORO_STATES={
工作:“工作”,
休息:“休息”
};
常量状态={
开始:“开始”,
停止:“停止”,
暂停:“暂停”
};
常数工作时间长度单位为分钟=1;
常数休息时间长度单位为分钟=5;
新Vue({
el:“#应用程序”,
数据:{
状态:STATES.STOPPED,
分钟:工作时间长度(单位:分钟),
秒:0,,
pomodoroState:POMODORO_美国公司,
时间戳:0
},
计算:{
标题:功能(){
返回这个。pomodoroState===POMODORO_STATES.WORK?WORK!:“Rest!”
},
最小值:函数(){
如果(本分钟<10){
返回'0'+this.minute;
}
返回此。分钟;
},
第二节:功能(){
如果(本秒<10){
返回'0'+此秒;
}
把这个还给我;
}
},
方法:{
开始:函数(){
this.state=STATES.STARTED;
这个;
this.interval=setInterval(this._tick,1000);
},
暂停:函数(){
this.state=STATES.PAUSED;
clearInterval(这个.interval);
},
停止:函数(){
this.state=STATES.STOPPED;
clearInterval(这个.interval);
this.pomodoroState=POMODORO_STATES.WORK;
this.minute=工作时间长度(单位:分钟);
这个秒=0;
},
_勾选:函数(){
//如果second不是0,只需减小second
如果(本秒!==0){
这是第二次;
返回;
}
//如果秒为0,分钟不是0,则减小分钟数并将秒数设置为59
如果(this.minute!==0){
这是一分钟;
这个秒=59;
返回;
}
//如果秒为0,分钟为0,则切换工作/休息间隔
this.pomodoroState=this.pomodoroState===POMODORO_STATES.WORK?POMODORO_STATES.REST:POMODORO_STATES.WORK;
if(this.pomodoroState===POMODORO_STATES.WORK){
this.minute=工作时间长度(单位:分钟);
}否则{
this.minute=休息时间长度(单位:分钟);
}
}
}
});
按钮:禁用i{
颜色:灰色;
}

波莫多罗
{{title}}
{{min}}:{{sec}

interval
变量在
start
方法中定义

this.interval = setInterval(this._tick, 1000)
保持setInterval的参考,以便稍后在
pause
stop
方法中清除。让您困惑的是,为什么在state中没有定义
interval
?如果某个内容未在状态中定义,并不意味着您不能在任何方法中将其附加到vue实例(
this
)。您可以在javascript中合法地执行此操作,它与Vue无关


但是,此代码的作者应该在状态下声明
interval
,如
interval:null
,以避免混淆,这也是最佳做法。

interval
变量在
start
方法中定义

this.interval = setInterval(this._tick, 1000)
保持setInterval的参考,以便稍后在
pause
stop
方法中清除。让您困惑的是,为什么在state中没有定义
interval
?如果某个内容未在状态中定义,并不意味着您不能在任何方法中将其附加到vue实例(
this
)。您可以在javascript中合法地执行此操作,它与Vue无关


但是,该代码的作者应该在状态中声明
interval
,如
interval:null
,以避免混淆,这也是最佳做法。

它与
此状态完全相同。
此.pomodoroState
此.minute
此.second
-您似乎没有问题@JaromandaX但是这些变量已经在数据对象中定义了。你需要了解如何使用对象(类)以及
这个
是如何工作的。它完全像
这个状态
这个.pomodoroState
这个.minute
这个.second
-你似乎没有问题@JaromandaX,但这些变量已经在data obj中定义。您需要了解如何使用对象(类)以及
如何工作