2015-11-18 49 views
0

我已經做了簡單對象分享JavaScript屬性

var myObject = { 
formname: $('form'), 
input: this.formname.find('input'), 

init: function() { 
    console.log(myObject.input) 
} 

}

myObject.init();

http://jsfiddle.net/t3fjffLg/

但是,這是行不通的。我想在name2屬性中使用我的名稱屬性。 什麼是共享屬性的最佳方法? 我必須使用原型嗎?

回答

0
var myObject = { 
    name: 'Johan', 
    name2: function(){return this.name}, 

    init: function() { 
     console.log(this.name2()) 
    } 
} 
+0

它似乎有點矯枉過正有一個功能,只是爲了共享一個值。 – Johansrk

+0

@Johansrk我可能是錯的,但這似乎是實現你所問的最簡單的方法。另一種方法就像Hatem在設置初始化屬性時提到的那樣。你究竟想達到什麼目的?作爲名稱:「Johan」,name2:this.name即使工作起來似乎也是無用的代碼。 – Serhiy

+0

這將是很高興fx共享選擇器。看到我編輯的代碼 – Johansrk

0

您的目標是使用相同的「name」值初始化「name2」。因此,要做到這一點,最好的辦法是讓它裏面的「初始化」方法:

var myObject = { 
    name: 'Johan', 
    name2: null, 

    init: function() { 
     this.name2 = this.name 
     console.log(myObject.name2) 
    } 
} 

myObject.init(); 

或者,如果你堅持在分配頭中的屬性值。那麼你必須遵循這種方法:

name2: function(){ return this.name } 
+1

這只是一個例子。我想問題是,如何共享對象的屬性? – Johansrk