我正在創建一個JavaScript對象,它將存儲有關用戶登錄到我的網站(以方便訪問)的信息,但對於我來說,瞭解在javascript中創建對象的方法非常困難。我見過使用原型方式的例子,還有其他人使用閉包方式,我決定留在閉包中,因爲我只需要這個對象的一個實例,所以,不要花費太大的開銷。創建對象的Javascript
我不知道我在做什麼是正確的,如果有任何的方式來提高我的代碼,這是我的代碼:
(function(window){
var mysite = (function() {
var me = this;
return { //public interface
init : function(userInfo){
me.user = userInfo;
return this;
},
sayHello : function(){
return 'Hello, my name is ' + me.user.name + ' and I am ' + me.user.age + ' years old.';
}
}
}());
window.mysite = function(userInfo){
return mysite.init(userInfo);
}
})(window);
var mysite = mysite({name : 'Jonathan', age : 17});
mysite.sayHello();
編輯#1
如果我願意喜歡將子對象添加到主對象MySite,並且這些子對象有自己的方法和屬性,以及對主對象(MySite)的屬性和方法的訪問,我想要這樣做:
mysite.timezone.calculeUserTimezone();
如何繼續?
_你沒有利用閉包_你能解釋一下嗎?按照您發佈的示例,如果我想讓用戶成爲私有財產,我該怎麼辦?謝謝。 – JCM
@Jonathan在JavaScript中沒有私有的東西;)我也忘了提到你的代碼是一個單獨的對象,它不斷被重新初始化,並且不允許你創建多個實例。 – Raynos
但在我的例子中,'me.user'不能在關閉之外進行處理。 – JCM