鉴于此设置:有没有办法在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"
任何想法?