好的我对JavaScript来说相对较新,可能真的大约需要4-5个月的时间。但是我希望改进我的JavaScript以匹配我一般编码的方式。
我通常是一名PHP开发人员,并使用Composer加载我的类来使用。 Require.JS允许我这样做吗?例如,我称之为模块的快速摘录是:
var tabs = function(paramOps) {
var _this = this;
_this.opts = {
header: {
target: 'tabbedHeader'
},
content: [{
id: '',
title: 'Default Title',
descr: 'Data is yummy'
}]
}
$.extend(true, _this.opts, paramOpts);
_this.render = function() {
// YOU GET THE IDEA
}
return _this;
}
然后我会使用:
加载我的模块var tabs = new tabs();
tabs.render(paramOpts); // paramOpts is defined elsewhere
好的,如果没有应用程序JS文件的野兽,我可以使用Require.JS将它们作为模块加载吗?
答案 0 :(得分:0)
好的,如果没有应用程序JS文件的野兽,我可以使用Require.JS将它们作为模块加载吗?
是。假设您在tabs.js
中定义了它。那你就做了:
var Tabs = require("./tabs.js");
(我不是需要专家,所以我不知道为什么需要领先的./
,但是it's shown in this example linked from the Require website,所以......)
但它可以进一步很多。例如,您可以在define
中使用tabs.js
为其命名,而不是文件名,例如:
tabs.js
:
define("tabs", function() {
// ...create your Tabs function
return Tabs;
});
然后使用它:
var Tabs = require("tabs");
或者,如果您在应用中的其他组件中使用它,可能是ui.js
,并且您想在define
中使用ui.js
,那么:
ui.js
:
define("ui", ["tabs"], function(Tabs) {
// Use Tabs here
// Return whatever it is the 'ui' module defines
});
设置依赖项:RequireJS知道加载ui
必须涉及加载tabs
,所以它也是如此,然后将ui
的依赖项作为{{1}的参数提供回调。
附注:最好坚持约定,如果你要将一个函数作为构造函数调用(例如,通过define
),它应该是最初的上限:new
,不是Tabs
。