是否可以通过在其上实施 call
或 apply
或以其他方式使对象可调用?例如:
var obj = {};
obj.call = function (context, arg1, arg2, ...) {
...
};
...
obj (a, b);
原文由 Septagram 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否可以通过在其上实施 call
或 apply
或以其他方式使对象可调用?例如:
var obj = {};
obj.call = function (context, arg1, arg2, ...) {
...
};
...
obj (a, b);
原文由 Septagram 发布,翻译遵循 CC BY-SA 4.0 许可协议
ES6
现在有更好的解决方案。如果您以不同的方式创建对象(使用 class
, extend
ing ‘Function’ 类型),您可以拥有它的可调用实例。
另见: How to extend Function with ES6 classes?
原文由 0xc0de 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
不,但是您可以将属性添加到函数中,例如
编辑:要“使”一个对象可调用,您仍然需要执行上述操作,但它可能看起来像:
然后你只需使用“func”函数而不是对象。实际上,此方法所做的只是在两个对象之间复制属性,但是……它可能对您有所帮助。