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

标签 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 中不起作用。我发现对象不支持属性或方法。

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

然后我改为 Jquery.extend...在 Chrome 和 FOX 中工作正常。不适用于 IE8。

有谁知道如何正确扩展对象以添加上述属性!

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

最佳答案

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

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

关于javascript - 在运行时向 Javascript 对象添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11862387/

相关文章:

Javascript:检查是否通过 Promises 定义了多个自定义元素

javascript - javascript 预加载如何工作?

javascript - 使用 fetch 发出 POST 请求

javascript - jquery 延迟加载和其他 Jquery/javascript 函数在附加后不起作用

jquery - 将光标更改为 Bootstrap 图标上的指针有反馈输入

internet-explorer - IE文本阴影破解

html - Internet Explorer 不会增加非同级 <li> 元素的数量

javascript - jQuery 下拉菜单在 IE 和 Webkit 中的行为不同

javascript - 使用 AngularJS 中的链接覆盖单击表

jquery - 在哪里将 Jquery Validation 插件添加到 Knockout 组件