1

JavaScript でPython に代わるものを探していましたが、__getattr__Firefox の__defineGetter__. ブラウザ間の互換性がないだけでなく、次の疑似コードのように本当に便利なことを行うこともできません。

var api = function()
{
    var __getattr__ = function(attr, args)
    {
        var api_method = attr;
        $post(url, api_method, args, function(response){alert(response)});
    }
}

// Now api.getprofile('foo', 'spam'); would call the following code behind the scenes:
$post(url, 'getprofile', ['foo', 'spam'], function(response){alert(response)});

明らかにこれは疑似コードですが、JavaScript で実際にこれを行う既知の方法はありますか? 手動バージョン (コードの最後の行) を非常にうまく使用できることは理解していますが、関数が約 30 になると、これは非常に面倒になります。

4

1 に答える 1

1
var api = {
    getAttr:function(attr) {
        var args = [];
        for (var i = 1; i < arguments.length; i++) {
            args.push(arguments[i]);
        }
        $post(url, attr, args, function(response){alert(response)});
    }
};

それは最も美しいものではなく、まったく同じように動作しませんが、うまくいくはずです. 次のように呼び出す必要があります: api.getAttr('getprofile', 'foo', 'spam');

于 2010-02-10T22:11:02.707 に答える