鑑於此設置:有沒有辦法在JavaScript中檢查父/調用對象?
var ObjectNamespace = {}
var FunctionNamespace = function FunctionNamespace() {}
ObjectNamespace.User = function() {}
FunctionNamespace.User = function User() {}
反正是有寫namespace
方法來完成這樣的事情:
ObjectNamespace.User.namespace = function() {
return this.toString().match(/function *(\w+)/)[1]
}
ObjectNamespace.User.namespace() //=> "User"
:
ObjectNamespace.User.namespace() //=> "ObjectNamespace.User"
FunctionNamespace.User.namespace() //=> "FunctionNamespace.User"
你可以做這樣的事情得到的第一個節點
但我的問題是,有沒有辦法引用「父」對象,即對象User
函數定義在(ObjectNamespace
)?有些東西符合arguments.caller.callee
。這樣,你會得到這個:
ObjectNamespace.User.namespace() //=> "ObjectNamespace.User"
任何想法?