在 Sequelize 中,有一种方法可以创建与模型相关的数据库条目,例如:
user.createPost({...})
相当于instance.methodInstance。我认为“createPost”符号是 Sequelize 的一些特性,但我遇到了 React。在 React 中你可以这样定义一个组件:
function Square(props) {
return (
<button className="square" onClick={() => props.onClick()} >
{props.value}
</button>
);
}
另一个组件可以像这样渲染它:
class Board extends React.Component {
renderSquare(i) {
return <Square />;
}
现在我们有了“renderSquare”符号,相当于methodClass。这是我不知道的一些java语法,还是这两个库具有相似的风格是巧合?
所以我问以驼峰式大小写连接的方法和对象而不是(更常见的)object.method 语法是否是标准的 javascript 语法。
最佳答案
JavaScript的发展速度快得离谱,以至于事情变得有点困惑。
在 ES6 之前,JS 中没有 class
关键字。但是您可以通过创建函数并通过原型(prototype)向其附加方法来实现相同的结果。
很多开发人员,尤其是那些习惯 Java/C# 的开发人员,无法理解原型(prototype)。 ES6 创建了一些语法糖来声明旧式 OOP 风格的类 - 这就是第二个示例看起来“java 风格”的原因。我必须承认 - 我实际上很喜欢新语法。清楚多了。
所以,这就是全部 - 您实际上可以使用您喜欢的任何方法。请记住,对于 React,基本上是单个函数(而不是构造函数)的组件应该是无状态的,并实现最少的逻辑 - 基本上只呈现简单内容的组件。对于任何更复杂的事情,您应该使用有状态组件 - 使用 ES6 类或带有 React.createClass
的常规 ES5。
这里有一个很好的指南,解释了您在 ES6 与 ES5 React 代码方面需要了解的大部分内容: https://facebook.github.io/react/docs/react-without-es6.html
关于javascript - JavaScript 库中的 methodObject 表示法(例如 React 和 Sequelize),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43092717/