在运行时向Javascript对象添加属性

时间:2012-08-08 10:17:03

标签: javascript jquery internet-explorer invokescript

假设我在javascript中有这个功能

    function EstablishUserSession(params) {
        gecResult = "noResult";            
        params["callbackOnSuccess"] = Success;
        params["callbackOnException"] = Exception;
        controller.establishUserSessionIAPI(params);
        return "requestSent";
    }

params是通过HtmlDocument.InvokeScript传入的对象..看起来像这样

{ iapiUri: "dfdfdsf", language: "en", partnerUsername: "ddddd", integrationPartnerId: 1, cleartextPassword: "dddd"}

以上在Chrome和FFox中​​运行良好。在IE8中不起作用。我得到的Object不支持属性或方法。

    function EstablishUserSession(params) {
        gecResult = "noResult";
        jQuery.extend(params, { callbackOnSuccess: Success, callbackOnException: Exception });
        controller.establishUserSessionIAPI(params);
        return "requestSent";
    }

然后我改为Jquery.extend ......在Chrome和FFox中​​工作正常。在IE8中不起作用。

有没有人知道如何正确扩展对象以添加属性,如上所述!

注意:成功和异常只是回调

1 个答案:

答案 0 :(得分:0)

您可以使用该对象的新副本..

var newParams = $.extend({ newProp : value}, oldParams);