在coffeescript类中是否可以有一个同名的静态函数和成员函数
Is it possible to have a static function and member function of the same name in a coffeescript class?
如果我的问题措辞不正确,或者很难理解我在问什么,这里有一个我试图做什么的简化示例。
class Number
constructor: (@num) ->
@add: (operand1, operand2) ->
return operand1 + operand2
add: (operand) =>
@num = @add(@num, operand)
Number num1
Number num2
Number.add(num1, num2)
num1.add(num2)
这样做的目的是使Number.add(num1, num2)
可以静态地用于返回Number类的两个对象的和,并且使Number类的对象可以使用num1.add(num2)
使用静态函数的代码向其添加另一个数字对象。当我试图在我的项目中实现类似的代码时,结果是递归混乱。我意识到在add函数中调用@add是在调用自己,这不是这里想要的。我想做的事情有可能吗?还是我在这里试图做一些愚蠢的事情?
num1
和num2
是对象,您必须处理它们的num
属性:
class Number
constructor: (@num) ->
@add: (operand1, operand2) ->
# the addition must be done on num property
operand1.num + operand2.num
add: (operand) ->
# here, you must call Number.add
Number.add(@, operand)
# to create Number, use new Number
num1 = new Number 10
num2 = new Number 5
console.log Number.add(num1, num2)
console.log num1.add(num2)
在这两个add()函数中,应检查操作数是否为Number
,以避免出现任何错误。
相关文章:
- 构造函数函数闭包变量
- 只使用常量的静态javascript函数会被编译为常量吗
- 构造函数函数中的自执行函数的OO上下文/范围
- 为什么在构造函数函数中使用此关键字
- 正在将构造函数函数迁移到TypeScript
- 为什么要在函数定义之外引用静态变量(函数属性)
- 如何调用在其他 JavaScript 文件中定义的静态 JS 函数
- Javascript ES6 中的静态构造函数
- 获取构造函数函数的最佳方式是在JavaScript中使用带名称空间的字符串表示
- 为什么可以't我使用'var'在构造函数函数中
- 获取自定义对象构造函数函数名
- 如何将动态数据馈送到静态jquery函数
- 在构造函数函数中创建只读(get)属性
- 正在检查类型构造函数函数
- Javascript中的内置构造函数函数
- 如何在JavaScript中的函数(函数本身就是一个参数)中传递参数
- 构造函数函数原型可枚举
- 将静态javascript函数转换为动态函数
- 使用new window[]创建静态内部函数对象
- Babeljs类的静态构造函数