2012-04-06 28 views
-3

我試圖給這個全局會話對象中「參加者」對象的'notes'屬性賦值一個新的值......只要我嘗試賦值,但值不會保留。爲什麼全局對象的屬性不接受新的賦值?

從WebKit的控制檯:

> session['attendee']['notes'] 
null 
> session['attendee']['notes'] = "test" 
"test" 
> session['attendee']['notes'] 
null 
> window.session['attendee']['notes'] = "test" 
"test" 
> session['attendee']['notes'] 
null 
> window.session['attendee']['notes'] 
null 

會話設置像這樣在全球範圍內:

window.session = {}; 

再後來就我分配一個對象從瀏覽器的SQL數據庫中抽取喜歡這個;

window.session['attendee'] = {'name':'mike' ..etc..} 

更新:

這裏的一些控制檯信息:

> window.session['attendee'] 
Object 
    address_1: null 
    address_2: null 
    app_id: 1 
    badge_id: null 
    budget: null 
    city: null 
    company: null 
    decision_maker: null 
    email: null 
    first_name: "Anonymous" 
    followup: null 
    id: null 
    is_influencer: null 
    is_purchaser: null 
    is_user: null 
    last_name: "" 
    notes: null 
    phone: null 
    rating: null 
    scanned: 1 
    state: null 
    synced: null 
    zip: null 
    __proto__: Object 
> window.session['attendee'].notes 
null 
> window.session['attendee'].notes = "TEST" 
"TEST" 
> window.session['attendee'].notes 
null 

所以這是在session.attendee的對象,「筆記」是該對象的屬性,但分配它的價值並不堅持。

+1

什麼是'session',什麼是'會話[ '參與者']'? – Ryan 2012-04-06 21:00:20

+1

是的,我們需要看到會話和會話['參加者']在哪裏實例化 – andrewpthorp 2012-04-06 21:00:58

+0

會話是這樣實例化的:window.session = {}; – mboyle 2012-04-06 21:03:20

回答

4

嘗試分配給非對象的屬性將不會執行任何操作。確保分配的順序如下所示:

window.session = {}; 
window.session.attendee = {}; 
window.session.attendee.notes = "test"; 
1

這對我來說很好。我假設你在做一些愚蠢的事情。

window.session; 
window.session = {}; 
window.session = {attendee:{notes:""}}; 
window.session.attendee.notes = "awesome"; 
session.attendee.notes; // "awesome" 

這裏的輸出看起來像在控制檯什麼:

window.session; 
undefined 
window.session = {}; 
Object 
window.session = {attendee:{notes:""}}; 
Object 
window.session.attendee.notes = "awesome"; 
"awesome" 
window.session.attendee 
Object 
notes: "awesome" 
__proto__: Object 
相關問題