javascript - 在 Javascript 对象上定义方法/函数
问题描述
这是:
saveUpdate() {
// Some code
}
与以下相同:
saveUpdate: function() {
// Some code
}
是否有最佳实践(ES6)方法来定义对象(特别是 Vue.js 组件)的方法?
更多上下文:我的 Vue.js 应用程序在生产中正确触发方法时遇到问题。我定义的方法似乎在开发中运行良好——但一旦编译用于生产,它们的行为似乎并不相同。我在 Vue.js 文档中读到所有方法都需要定义为新的单独函数,我现在想知道我定义方法的方式;实际上是不正确的。
更广泛的例子:
...,
methods: {
saveUpdate() {
// Some code
}
},
...
我应该做类似的事情:
...,
methods: {
saveUpdate: () => {
// Some code
}
},
...
什么是现代的、最佳实践或公认的方式来做到这一点?还是我找错地方了,而我的声明就跟它们一样?
解决方案
是的,这个:
saveUpdate() {
// Some code
}
是语法糖:
saveUpdate: function() {
// Some code
}
两者的语法没有什么不同。如果你想要一个箭头函数,我相信你需要使用第二种形式:
saveUpdate: () => {
// Some code in a lexical `this` scope (not useful in Vue computed).
}
另请注意,->
语法无效 - 它是一个粗箭头=>
。尽管正如Phil在评论中指出的那样,您很可能不想在 Vue 项目中使用箭头函数,因为您将失去this
与组件交互方式的绑定。
推荐阅读
- api - Openrefine - 使用 API 从加载的项目中检索列
- python - 迭代numpy数组时的平均值
- python - 使用 Keras 的维度上的 LSTM 自动编码器问题
- python - 附加两个具有相同列名的数据框。没有 NaN 值
- r - 错误:这是 R 3.1.3,包 'weightr' 需要 >= 3.3.3
- python - 使用函数修改数据表 UserProfile 中的值
- javascript - 为什么我的转换器在从减少/组合中抽象出来时不再工作?
- scala - Scala Cats:如何将 List[ValidatedNel[E, A]] 转换为 Ior[NonEmptyList[E], List[A]]?
- qt - 在其他页面上操作后更改 url
- node.js - Firebase Cloud Function - 从案例列表中获取数据库值的最佳选择