b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ruby 语言 CommonJS和AMD/CMD(6)

电脑杂谈  发布时间:2018-02-11 12:39:50  来源:网络整理

require.js加载的模块,采用AMD规范。也就是说,模块必须按照AMD的规定来写。

具体来说,就是模块必须采用特定的define()函数来定义。如果一个模块不依赖其他模块,那么可以直接定义在define()函数之中。

假定现在有一个math.js文件,它定义了一个math模块。那么,math.js就要这样写:

// math.js

define(function (){

ruby 语言_javascript !_su ruby控制台

var add = function (x,y){

return x+y;

};

return {

add: add

};

});

加载方法如下:

// main.js

require([‘math‘], function (math){

alert(math.add(1,1));

});

如果这个模块还依赖其他模块,那么define()函数的第一个参数,必须是一个数组,指明该模块的依赖性。

define([‘myLib‘], function(myLib){

function foo(){

myLib.doSomething();

}

return {

foo : foo

};

});

当require()函数加载上面这个模块的时候,就会先加载myLib.js文件。

六、加载非规范的模块

理论上,require.js加载的模块,必须是按照AMD规范、用define()函数定义的模块。但是实际上,虽然已经有一部分流行的函数库(比如jQuery)符合AMD规范,更多的库并不符合。那么,require.js是否能够加载非规范的模块呢?

回答是可以的。

这样的模块在用require()加载之前,要先用require.config()方法,定义它们的一些特征。

举例来说,underscore和backbone这两个库,都没有采用AMD规范编写。如果要加载它们的话,必须先定义它们的特征。

require.config({

shim: {

‘underscore‘:{

exports: ‘_‘

},

‘backbone‘: {

deps: [‘underscore‘, ‘jquery‘],

exports: ‘Backbone‘

}

}

});

require.config()接受一个配置对象,这个对象除了有前面说过的paths属性之外,还有一个shim属性,专门用来配置不兼容的模块。具体来说,每个模块要定义(1)exports值(输出的变量名),表明这个模块外部调用时的名称;(2)deps数组,表明该模块的依赖性。

比如,jQuery的插件可以这样定义:

shim: {

‘jquery.scroll‘: {

deps: [‘jquery‘],

exports: ‘jQuery.fn.scroll‘

}

}

七、require.js插件

require.js还提供一系列插件,实现一些特定的功能。

domready插件,可以让回调函数在页面DOM结构加载完成后再运行。

require([‘domready!‘], function (doc){

// called once the DOM is ready

});

text和image插件,则是允许require.js加载文本和图片文件。

define([

‘text!review.txt‘,

‘image!cat.jpg‘

],

function(review,cat){

console.log(review);

document.body.appendChild(cat);

}

);

类似的插件还有json和mdown,用于加载json文件和markdown文件。(完)


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-71778-6.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...