我需要将一个函数转换为一个对象。例如,当我需要使用名为fn
的变量时,我希望能够将其用作函数fn()
或对象fn.json()
。我有代码可以做到,但我认为这不正确。
package lib.smartic {
// import
import lib.smartic.smartic;
// constructor $
public var fn = function(s):smartic{
return new smartic(s);
};
Function.prototype.json = function (s) {
// call
};}
如何将原型应用于变量fn
,而不仅仅是对象类?
答案 0 :(得分:0)
实际上,Function是一个Object ......就像所说的@The_asMan一样,你不应该使用原型。
简单示例:
var smartic: Smartic = new Smartic("someValue");
trace(smartic.json());
定义你的Smartic类,没有原型:
public class Smartic {
private var _value:String;
public function Smartic(value:String) {
_value = value;
}
public function json():String {
return "Some json here";
}
}
答案 1 :(得分:0)
我不知道你想要做什么,但如果你想要聪明才能成为一个功能,你可以这样做:
保留Nicolas Siver的代码并添加此功能:
public function smarticFunc(value:String):Smartic
{
return new Smartic(value);
}
所以你可以使用smarticFunc作为函数或Smartic,因为它返回一个Smartic。