將屬性或值添加到JavaScript函數是可以接受的嗎?將屬性添加到JavaScript函數是可以接受的嗎?
實施例:
var f = 1;
function foo (param) {
f++;
}
var fooFunc = foo;
fooFunc.dummy = f;
console.log('fooFunc: ' + fooFunc);
console.log('fooFunc.dummy: ' + fooFunc.dummy);
上面示例創建一個功能(foo
),然後將其分配給一個新的變量(fooFunc
),然後添加dummy
屬性fooFunc
。
運行時,此示例首先打印函數的文本,然後打印期望值(在這種情況下爲1
)。當打印功能,它不顯示dummy
值的跡象,包括:
fooFunc: function foo(param) {
f++;
}
fooFunc.dummy: 1
的jsfiddle這裏 - 打開瀏覽器的JavaScript控制檯來查看日誌消息:http://jsfiddle.net/nwinkler/BwvLf/
爲什麼這項工作? dummy
屬性存儲在哪裏,爲什麼我登錄函數時不打印?
最後,即使這是有效的,使用它是一個好主意(或可接受的做法)嗎?我不想就此開始一個開放式的討論,而是看看是否有文件記載的用法,或者讓JavaScript編碼指南中的人士感到沮喪。