gpt4 book ai didi

javascript - 命名空间 QScriptEngine 扩展

转载 作者:行者123 更新时间:2023-11-30 06:46:05 25 4
gpt4 key购买 nike

有人可以向我解释如何在 QScriptEngine 扩展中获得命名空间吗?我已经设置好了,所以我在 script/下有一个目录 foo/,其中正在执行一个 __init__.js 文件。

__setupPackage__(__extension__);
print(__extension__);

hello = function() { return 5; };

在我的 C++ 代码中: engine.evaluate("你好();");//工作正常

所以我的问题是,如果像 foo/bar/whatever (foo.bar.whatever) 这样的文件层次结构都被集中到一个全局命名空间中,那么它们有什么意义呢?我见过一些例子,他们试图在代码中创建一个命名空间,但我似乎无法在不出现编译器错误的情况下让它工作。

      foo = {
hello : function() { return 5; }
};

在我的 C++ 代码中:

      engine.evaluate("foo.hello();");

我是否误解了 Qt 处理 namespace 的方式?是否真的应该将所有内容都混入全局范围内,而不管它是从哪个文件中获取的?是否有创建这些类型的 namespace 的适当示例?谢谢。

最佳答案

命名空间(在 C++ 等语言中众所周知)在 JavaScript 中不存在。在 JS 中获得类似命名空间的行为的唯一方法是将东西封装在一个对象中,其中对象的名称定义了命名空间

此示例将在 JS 中创建一个“命名空间”foo,其中包含一个方法“bar”,以及一个包含方法“hello”的命名空间“foo.baz”:

var foo = {
bar : function(){ return 5; },
baz : {
hello : function(who){ return 'Hello ' + who + '!'; }
}
};

希望这对您有所帮助。

关于javascript - 命名空间 QScriptEngine 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6681921/

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