gpt4 book ai didi

javascript - 有没有办法在 JavaScript 中检查父/调用对象?

转载 作者:行者123 更新时间:2023-11-30 18:31:50 25 4
gpt4 key购买 nike

鉴于此设置:

var ObjectNamespace   = {}
var FunctionNamespace = function FunctionNamespace() {}

ObjectNamespace.User = function() {}
FunctionNamespace.User = function User() {}

有没有办法编写一个命名空间方法来完成这样的事情:

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"

有什么想法吗?

最佳答案

绝对不是。假设有,我们将其称为 *.parent。以下代码会做什么:

var apple = {}, banana = {}, lemon = {};
banana.friend = apple.friend = lemon;

lemon.parent.otherThing = 6;

console.log(apple.otherThing, banana.otherThing);

// 6, undefined?
// undefined, 6?
// 6, 6?

lemon 的 parent 是谁? applebanana 都是,但这没有意义......

此外,如果您在上下文之外调用命名空间函数,您的想法虽然不错,但将无法实现。

关于javascript - 有没有办法在 JavaScript 中检查父/调用对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9436898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com