Javascript Patterns--读书笔记4 (Functions)

Functions是JavaScript中一非常重要的一部分,主要体现在两方面:一是first-class objects,二是它会提供运行的scope.

named function expression:

var add = function add(a,b){
  return a+b;
}

anonymous function:

var add = function (a,b) {
  return a + b;
};

这两者完成的功能是一样的,但有什么区别呢:

区别就在于,当我们试图去取function.name的时候,named function expression将会得到add,而anonymous function将不会得到,那么这个name属性有什么用呢?一是对于一些调试工具,如firebug可以准确的报出那个函数的一些信息,二是在自身调用的时候也是非常有用的。

Function's name propety:

name属性尽管不是一个标准属性,但是许多环境都实现了它,对于命名函数,我们可以通过它得到名字,而对于匿名函数,在IE中将会得到undefined,而在FF中将会得到empty string

看如下代码:

function foo() {} //declaration
var bar = function() {};//expression
var baz = function baz() {}; //named expression

foo.name;//"foo"
bar.name;//"" IE将显示为undefined
baz.name;//"baz"

Callback Pattern

funcitons是object,所以我们可以像传一个参数那样的把一个object传给另一个函数.

如果我们需要定义函数的执行环境,我们可以用apply, this

Immediate function Pattern

 用它的一个好处是可以不污染global环境,因为我们在其中定义的都是local变量.

转载于:https://www.cnblogs.com/moonreplace/archive/2012/09/17/2689770.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值