假設我們定義了一個簡單的一些儲值dd
增加其輸入的功能:可以在javascript中引用一個函數本身嗎?
var obj={}
obj.dd=1
obj.f=function(x){
return x+this.dd
}
或者你可以爲dd
創建一個封閉如下但這將創建,而不是一個靜態增量可能被改變後來:
var dd=1
var f=function(x){
return x+dd
}
我們可以交替存儲dd
在函數中:
var obj={}
obj.f=function(x){
return x+this.f.dd
}
obj.f.dd=1
我很好奇,這是否是可能的函數來獲取連接到自身的變量,而不通過父對象去,有點像self
關鍵字,將參考函數本身並允許如下:
var f=function(x){
return x+self.dd
}
f.dd=1
我知道沒有必要做這樣的事情,但我認爲這將是很酷,如果你可以。
其他答案已經涵蓋了這在技術上是否可行。不過,我強烈建議保持簡單並使用常規功能來做同樣的事情(this/closures)。對大多數人來說,它不僅會更加熟悉,而且變異的函數屬性將會禁用許多編譯器優化。 – hugomg