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();
//
// 具名函数表达式
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();
//
相关文章推荐
- 由几道JS笔试题引发的知识点探究一——JS有哪些全局函数?
- js基本知识点总结-----js函数基础
- Java爬虫(四)-- Java 调用 JS 函数 模拟页面 JS 密码加密(附几个知识点)
- 总结js函数相关知识点
- js--函数知识点
- js中的open()函数相关的全部知识点
- js的字符串有关函数(转)
- 当页面完全加载完成后执行一个js函数
- 第110天:Ajax原生js封装函数
- js 计算 Fibonacci 值,用到知识点:递归调用"匿名函数"
- js中普通函数与函数对象
- 用JS获取函数相关的代码
- JS学习笔记之函数
- js中escape,encodeURI,encodeURIComponent三个函数的区别
- JS绘制数学函数图
- 未结束的常量字符串、函数未定义、××未定义、js中文乱码等js错误
- 蛋疼的js 之函数篇 (function(window,undefined){code...})(window)
- 二、JavaScript语言--JS基础--JavaScript进阶篇--函数
- js常用自编函数整理
- JS函数作用域及作用域链理解