我正在尝试将prototype.js的bind()
函数合并到我的Flash组件中。我找到了Jordan Broughs的this article,这给了我希望。他建议使用此代码段:
Function.prototype.bind = function():Function {
var __method:Function = this;
var object:Object = arguments[0];
return function():void {
__method.apply(object, arguments);
}
}
所以,我把它放在我的班级中,不在任何方法或构造函数之外。但是,当我尝试在函数上调用bind()时,我得到了这个编译错误:
1061:调用可能未定义的内容 方法通过引用绑定 静态类型函数。
有什么想法吗?
答案 0 :(得分:1)
您正在扩展Function
对象的prototype
。它不属于一个类。这不是你班级的方法。
Function
对象基本上是一个内置类型,它的prototype
是它的基类。通过添加prototype
bind
来扩展Function
从bind
继承的所有对象(包括您定义的所有函数)将具有创建闭包的{{1}}方法。
修改强>
这个问题实际上是重复的,已在此处得到解答:
ActionScript problem with prototype and static type variables
根据该问题,你删除了:函数以使其工作。