0
讓我介紹與短代碼這個問題,我在這裏:如何init()函數在這種情況下工作
function SomeObject() {
// Personaly I call this part initialization...
this.anything = "anything";
// ... but here somebody call function init...
this.init();
}
// ... which is declared there...
SomeObject.prototype.init = function() {
// ... and contains more initialization.
}
現在問題來了: 這是否執行初始化函數的有什麼好處?
我看到的唯一好處是,您可以稍後使用init
函數並重新初始化其某些屬性和其他內容。但是在我的代碼中,沒有這樣做的意義。更重要的是,如果我這樣做,它會打破很多東西。 從那時起,我不知道是否有此實現旁任何區別:
function SomeObject() {
init.call(this);
}
function init() {
}
而且我不知道任何振振有辭爲什麼要構造分成多個部分。所以我認爲(有這種感覺),我真的不得不錯過一些重要的好處或自然。
我可以封裝SomeObject和init與IIF。然後很容易認識到這些屬於一起。那麼你認爲應該避免使用通話嗎?或者你的回答意味着它並不重要,應該逐案解決。 –
如果'init'僅從構造函數中調用,並且沒有其他函數附加到原型,則無關緊要。如果您還有其他功能附加到原型上,那麼添加這個功能可以更容易地識別代碼的結構。這就是說,我不會推薦在JavaScript中過度使用OOP:它往往是冗長的。 –