使用require.js加载原型增强功能

Ant*_*ack 2 javascript module requirejs

我使用require.js加载我的模块,通常工作正常.不过,我确实有两个额外的问题:

1)如果你有一个类似帮助类的模块并为现有原型定义了其他方法(例如String.isNullOrEmpty),你会如何包含它们?您希望避免使用对模块的引用.

2)使用jQuery还需要改变什么.我知道需要jQuery,但是我还需要传递$吗?

谢谢!

Sim*_*ith 10

1)如果你有一个类似于辅助类的模块并为现有原型定义了其他方法(例如String.isNullOrEmpty),你会如何包含它们?您希望避免使用对模块的引用.

如果你需要扩展原型,那么就不要返回一个值,并将它作为你的最后一个参数require:

// helpers/string.js
define(function() {
    String.prototype.isNullOrEmpty = function() {
        // 
    }
});

// main.js
require(['moduleA', 'helpers/string'], function(moduleA) {

});
Run Code Online (Sandbox Code Playgroud)

2)使用jQuery还需要改变什么.我知道需要jQuery但是我还需要传递$吗?

jQuery的唯一要求是您正确配置路径

require.config({
    paths: {
        jquery: 'path/to/jquery'
    }
});

require(['jquery', 'moduleB'], function($, moduleB) {
    // Use $.whatever
});
Run Code Online (Sandbox Code Playgroud)

在我看来,没有必要使用内置jQuery的RequireJS版本,因为这主要是在jQuery不支持AMD时使用的.

现在它确实并保持独立可以让你轻松地交换另一个库(想想Zepto).