动作脚本将函数转换为对象

时间:2014-03-27 14:26:24

标签: actionscript-3 oop prototype

我需要将一个函数转换为一个对象。例如,当我需要使用名为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,而不仅仅是对象类?

2 个答案:

答案 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。