您的位置:首页 > Web前端 > JavaScript

js 函数知识点

2014-02-02 00:29 169 查看
函数的第二个重要特性是它能提供作用域支持

// 具名函数表达式

var add = function add(a, b) {

return a + b;

};

// 匿名函数表达式,又称匿名函数

var add = function (a, b) {

return a + b;

};

当省略第二个add,它就成了没有名字的函数表达式,这不会对函数定义和调用语法造成任何影响。带名字和不带名字唯一的区别是函数对象的name属性是否为空字符串。

函数的name属性

function foo() {} // 函数声明

var bar = function () {}; // 匿名函数表达式

var baz = function baz() {}; // 具名函数表达式

foo.name; // "foo"

bar.name; // ""

baz.name; // "baz"

//回调模式

函数是对象,也就意味着函数可以当作参数传入另外一个函数中。给函数writeCode()传入一个函数参数introduceBugs(),在某个时刻writeCode()执行了(或调用了)introduceBugs(),在这种情况下,我们称introduceBugs()是一个“回调函数”,简称“回调”:

function writeCode(callback) {

// 做点什么……

callback();

// ……

}

function introduceBugs() {

// ……

}

writeCode(introduceBugs);

//对象即时初始化

还有另外一种可以避免污染全局作用域的方法,和前面描述的即时函数相似,叫做“对象即时初始化”模式。这种模式使用一个带有init()方法的对象来实现,这个方法在对象被创建后立即执行。初始化的工作由init()函数来完成。

({

// 这里可以定义一些设置项,比如常量

maxwidth: 600,

maxheight: 400,

// 你也可以定义一些方法

gimmeMax: function () {

return this.maxwidth + "x" + this.maxheight;

},

// 初始化

init: function () {

console.log(this.gimmeMax());

// 更多的初始化任务……

}

}).init();

//
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: