2012-08-08 57 views
1

比方說,我有這個功能在JavaScript在運行時添加屬性到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和FFox罰款。在IE8中不起作用。

有沒有人知道如何正確地擴展一個對象來添加上面的屬性!

注:成功和異常只是回調

+0

你嘗試遍歷新對象添加每個鍵:值的舊對象'手動'? – adeneo 2012-08-08 10:31:17

+0

這將是我的最後手段......我希望這是一個通用框架。這些參數對象可以得到非常大的... – 2012-08-08 10:35:35

回答

0

你可以使用該對象的新副本..

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

以及再次在Chrome中工作...現在嘗試IE ..手指交叉 – 2012-08-08 10:25:07