html: {{ this.starts }}
js:
data() {
return {
seconds1: 86400,
starts: (Date.parse(new Date()) / 1000) - Number(this.seconds1),
结果:NaN
请问为什么会是NaN?
html: {{ this.starts }}
js:
data() {
return {
seconds1: 86400,
starts: (Date.parse(new Date()) / 1000) - Number(this.seconds1),
结果:NaN
请问为什么会是NaN?
哪来的this.seconds1
,vue
之所以经常能看到很多地方可以通过this
访问,是因为首先在初始化的时候把props/data/method
合并到vm
上,其次很多方法通过call/apply/bind
把vm
替换了原本的this
如楼上所说,是取不到的。可以在created中赋值。
created() {
this.starts= (Date.parse(new Date()) / 1000) - Number(this.seconds1);
}
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
给上面的回答做个补充:
你的用法相当于
这个表达式做了什么:首先声明a变量,然后声明一个对象,赋值time,count属性,最后是把对象赋值给a标量,这个顺序要搞明白,在赋值count属性的时候,a还是undefined,所以a.time会报错,那到你这里,就是this.seconds1还是undefined,所以结果是NaN
解决:提前声明一个变量保存该数据