При такой настройке:
var ObjectNamespace = {}
var FunctionNamespace = function FunctionNamespace() {}
ObjectNamespace.User = function() {}
FunctionNamespace.User = function User() {}
Есть ли способ написать namespace
метод для выполнения чего-то подобного:
ObjectNamespace.User.namespace() //=> "ObjectNamespace.User"
FunctionNamespace.User.namespace() //=> "FunctionNamespace.User"
Вы можете получить первый узел, выполнив что-тонапример:
ObjectNamespace.User.namespace = function() {
return this.toString().match(/function *(\w+)/)[1]
}
ObjectNamespace.User.namespace() //=> "User"
Но у меня вопрос, есть ли способ ссылки на «родительский» объект, т.е. на объект, для которого определена функция User
(ObjectNamespace
)?Что-то мета по линии arguments.caller.callee
.Таким образом, вы получите это:
ObjectNamespace.User.namespace() //=> "ObjectNamespace.User"
Есть идеи?