JavaScript中function的详细理解(附代码)


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

/*

判断对象是否是一个空对象

@param obj {Object}

@return {boolean}

*/

function isEmpty(obj) {

 for (var a in obj) {

return false

}

 return true

}

// 定义一个模块

~function() {

 // 辅助函数

 function now() {

return (new Date).getTime()

}

 // 模块逻辑...

}();

// 采用CommonJS规范的方式定义一个模块

define(require, exports, moduel) {

 // 辅助函数

 function now() {

return (new Date).getTime()

}

 // 模块逻辑...

})

isEmpty 作为一个全局函数存在,模块定义里面的 now 则作为局部函数存在,无论 isEmpty 还是 now 这里的 function 都指函数,它不依赖与对象和类,可以独立被调用。
语义4:匿名函数定义模块

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

// 全局命名空间

var RUI = {}

// ajax.js

~function(R) {

 // 辅助函数...

 ajax = {

request: function() {

  // ...

}

getJSON: function() {

  // ...

}

...

}

 // 暴露出模块给 R

 R.ajax = ajax

}(RUI);

// event.js

~function(R) {

 // 辅助函数...

 // 事件模块定义...

 // 暴露出模块给 R

 R.event = event

}(RUI);

// dom.js

~function(R) {

 // 辅助函数...

 // DON模块定义...

 // 暴露出模块给 R

 R.dom = dom

}(RUI);

这里的匿名函数执行后把API对象暴露给了RUI,无论匿名函数内干了多少活,对应匿名函数外是看不到的,也是没有必要去理会的。最终关心的是公开的 API 方法,只要了解这些方法的参数及意义就可以马上使用它了。

语义5:匿名函数处理某些特殊效果如处理一些数据又不想暴露过多的变量

1

2

3

4

5

6

7

8

9

10

11

// 判断IE版本的hack方式

var IEVersion = function() {

 var undef, v =

 var p = document.createElement('p')

 var all = p.getElementsByTagName('i')

 while (

p.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',

all[]

);

 return v > ? v : undef

}();

最终只要一个结果 IEVersion,匿名函数内部用到了一些局部变量全部可以隔离开。这种方式对于一些临时性的数据加工非常有效,紧凑。【相关推荐:JavaScript视频教程】

以上就是JavaScript中function的详细理解(附代码)的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

使用webpack构建多页应用的代码示例

详解js中map和foreach的差异

浏览器内核以及浏览器兼容的问题分析

nodejs的爬虫框架superagent

javascript如何加入图片

javascript警告框怎么关闭

javascript如何实现“全选”和"全不选"功能?(代码示例)

dom节点和元素之间有什么区别

javascript使用什么来标识

解决javascript中数组排序sort不发生改变

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...