JS 函数的入口和出口是指什么?

JavaScript016

JS 函数的入口和出口是指什么?,第1张

js 中的函数也是一种对象(Function类型的对象),函数名有两种:

常量函数名 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的方法,而不需要在其每个实例中保存。