如何在构造函数中使用静态助手方法(不需要在构造函数中声明它们)
How can I use static helper methods in the constructor (without declaring them there)?
我正在学习ES6课程。是否有一种方法可以使辅助函数(例如用于数据修改)访问构造函数,但也可以在其他地方访问,这样我就不会两次输入函数(作为构造函数中的IIFE和静态类方法)?
例如,我现在这样做是因为getDimensions
在构造函数中不可调用:
class Foo {
constructor(data){
this._data = data;
let dimensions = function(data){
//return some dimensions
}(data);
this._x = d3.scaleLinear().domain([dimensions])...
}
static getDimensions(someData){
//same calcs as the constructor IIFE
}
updateScale(newData){
let dimensions = getDimensions(newData);
this.x = d3.scaleLinear().domain([dimensions]);
}
}
是可能的/明智的让我自己一个静态助手方法,我可以在我的原型方法和构造函数中使用?
getDimensions
是一个静态方法,因此您必须将其作为Foo
对象的属性来访问。你应该用Foo.getDimensions(newData)
代替getDimensions(newData)
。
我不知道你是什么意思。通过引用类名,您应该能够很好地调用静态方法。下面是一个完整的示例,展示了在另一个类的构造函数中从一个类调用静态方法:
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
class Defines {
static StaticMethod(data) {
$("#someDiv").append("static method " + data);
}
}
class SomethingConcrete {
constructor (data) {
this.data = data;
Defines.StaticMethod(this.data);
}
}
$(function () {
const somethingConcrete = new SomethingConcrete(3);
});
</script>
</head>
<body>
<div id="someDiv">
</div>
</body>
</html>
输出:"static method 3"
相关文章:
- 为什么构造函数不是构造函数
- Javascript 中的构造函数不会返回由原型函数传递的正确值
- 主干构造函数不起作用
- Javascript:函数作为对象构造函数不清楚
- 当函数不需要 Javascript 时访问参数
- JS构造函数不起作用
- 日期(日期字符串)构造函数不一致
- 需要在构造函数内部声明一个方法而不是将其声明为原型方法的情况示例
- 继承:构造函数不运行'
- 构造函数不工作
- 如何在构造函数中使用静态助手方法(不需要在构造函数中声明它们)
- 为什么JavaScript Date对象构造函数不能正确工作
- 构造函数不能正常工作
- 为什么在构造函数中需要apply()函数
- DOM对象构造函数不能作为函数调用
- Javascript对象构造函数不注册参数
- 未捕获的类型错误:无法构造'文件':请使用'新'运算符,此DOM对象构造函数不能作为函数
- 未捕获的类型错误:需要1个参数,但只存在0..但我的函数不需要任何参数
- 为什么正则表达式构造函数不起作用
- 构造函数不能声明为箭头函数