好這個問題似乎有點基本的,但我不知道是否應該像這些功能緩存變量:緩存的最佳做法。避免多餘的緩存?
function fooBar(target) {
var elem = target.children[0].children[1];
if(n == 1) {
elem.style.color = "red";
}
else {
elem.style.color = "blue";
}
}
VS
function fooBar(target) {
if(n == 1) {
target.children[0].children[1].style.color = "red";
}
else {
target.children[0].children[1].style.color = "blue";
}
}
有沒有真正的性能提升呢?除了類型安全,我認爲後者更好,因爲我需要更少的線路。在這些情況下,究竟什麼被認爲是最佳實踐?我是否仍然需要緩存對象事件?
所以,除非我的if語句包括:
if(elem.className == "something")
我本人來說難道不煩緩存。
另一方面,我的大腦與編碼風格/一致性有衝突。
假設我有這樣的事情:
function fooBar(target) {
if(n == 1) {
target.children[0].children[1].style.color = "red";
}
if else (n == 2) {
target.children[0].children[1].style.color = "blue";
}
if else (n == 3) {
target.children[0].children[1].style.color = "yellow";
}
else {
target.children[0].children[1].style.color = "green";
}
}
然後,我將不得不對象緩存由於類型安全這使我回一致性的問題...
較少的行並不一定意味着較少的字節(並且必須使用兩次或三次相等來進行比較) – fcalderan
當您多次使用元素時 - __always__將其緩存在變量中。當您使用DOM元素時尤其如此。 –
@u_mulder更新了我的問題 – Asperger