常量函数名 function fnname(……){……}
变量函数名 var fnname=function(……){……}// 将一个匿名函数赋值给一个变量
由于函数也是对象,你甚至可以通过函数名在函数对象上附加数据:
fnname.xxx=……或 fnname['xxx']=……
这两种函数名都可以做为参数和返回值。
js 中的任何数据类型都可以做为参数和返回值。
由于 Array, String, Number……Function 实际上也是函数,只不过是js中预定的函数
(Array是数组的构造函数,String是字符串的构造函数,Number是数值的构造函数……Function是函数的构造函数)。
所以 Array, String, Number,Function 等数据类型也可以赋值给变量,也可以做为参数和返回值。
javascript中的接口就类似于java中的interface,是用function定义的语句块。在javascript中模仿接口
首先,我们可以定义一个公共的接口类: Interface,接着我们考虑下接口类需要有哪些成员和方法。
1)接口是一组方法签名的集合,其他内置接口的语言可以在接口中进行函数声明,从而定义一个接口;而在javascript中,我们需要通过给Interface类增加一个数组成员,保存方法名称,我命名为:methods,另外还有个成员:name,这个成员是接口名,方便我们快速定位错误—比如我们的对象到底是没实现哪个接口的哪个方法。
2) 在有内置接口的语言中,若一个类继承了某个接口,而未实现其中的一个或多个方法时,编译器会报错,从而提醒开发人员,但是javascript是无法提供这个功能的,所以在我们的Interface类中需要一个方法来保证在未实现某接口的所有方法时,抛出一个错误。 这个方法我们可以命名为:ensureImplents, 另外这个方法是可通用的,所以可以作为一个静态方法,即Interface的方法,而不需要在其每个实例中保存。
现在根据N多JS库的写法一般都是(function(w){
'use strict'
...
})(window)
这个立即执行匿名函数为入口