谁能帮忙解释一下js 里的define

JavaScript012

谁能帮忙解释一下js 里的define,第1张

这是AMD的规范,具体解释如下:

define([module-name?], [array-of-dependencies?], [module-factory-or-object])

其中:

module-name: 模块标识,可以省略。

array-of-dependencies: 所依赖的模块,可以省略。

module-factory-or-object: 模块的实现,或者一个JavaScript对象。

另外,可以参考网页链接这篇文章,里面有详尽的说明。

RequireJS中定义一个模块,总的来说有2种方式:简单键值对和函数依赖式。

1.简单键值对:一个模块仅含有值对,没有任何依赖

define({

color: "black",

size: 1,

method1: function() {},

method2: function() {}

})

这种写法虽然简单,但是有很大的局限性,仅仅是定义了该模块的返回值,不能做一些额外的初始化工作。

通过下面下面这种方式来定义模块,灵活性更高,我们可以在函数体内写一些模块初始化的代码

define(function () {

//Do initial work here

return {

method1: function() {},

method2: function() {}

}

})

2.函数依赖式:则第一个参数是依赖的名称数组;第二个参数是回调函数。

在模块的所有依赖加载完毕后,回调函数会被调用来定义该模块。

define(["module1"], function(moudle1) {

function calc()

{

return moudle1.val

}

return {"get":calc}

}

)

js定义方法有两种:

1.var example = function(){

  //...do something

}

2.function example(){

  //...do something

}

调用方法:

example()

可以跟页面元素事件绑定,例如:

<button type="button" onclick="example()">示例</button>