【发布时间】:2018-10-06 14:21:42
【问题描述】:
在使用$.getScript 运行脚本后,有什么方法可以访问其命名空间吗?由于plugin 是在全局范围内定义的,我原以为我可以运行它。
index.js
$.getScript('plugin.js').then((...result) => console.log(result));
$.getScript('plugin.js').then(plugin());
plugin.js
function plugin()
{
console.log("plugin.js");
return "plugin";
}
_输出__
ReferenceError: plugin is not defined
at https://replit.org/data/web_hosting_uncache/abalter/loading-scripts-and-callbacks-1/index.js:5:25
[ 'var plugin = function()\n{\n console.log("plugin.js");\n return "plugin";\n}',
'success',
Promise {
readyState: 4,
getResponseHeader: [Function],
getAllResponseHeaders: [Function],
setRequestHeader: [Function],
overrideMimeType: [Function],
statusCode: [Function],
abort: [Function],
state: [Function],
always: [Function],
catch: [Function],
pipe: [Function],
then: [Function],
promise: [Function],
progress: [Function],
done: [Function],
fail: [Function],
responseText: 'var plugin = function()\n{\n console.log("plugin.js");\n return "plugin";\n}',
status: 200,
statusText: 'success' } ]
【问题讨论】:
-
plugin在使用时不在范围内。您将调用插件的结果作为参数传递给 then。这没有意义。你想要$.getScript('plugin.js').then(() => window.plugin());
标签: javascript jquery ajax promise javascript-namespaces