美文网首页
javascript函数解析

javascript函数解析

作者: 英邦网络 | 来源:发表于2017-02-23 17:27 被阅读0次

在javascript中,函数是第一型对象(First-class Object),可以从以下几个方面来理解。

可以作为参数进行传递

可以赋值给变量、数组或者其它对象的属性

可以嵌套在函数内,就是说函数里面可以再定义函数

可以通过字面量创建,就是匿名函数

可以作为函数的返回值进行返还,就是说可以return一个函数

可以拥有属性和方法,所以说,函数就是一个对象

可以被调用,通常是异步方式

函数的声明方式

1、普通函数

function funcName(param1,param2,...){

return ...

}

2、匿名函数

var name = function(param1,param2,...){

return ...

}

3、内联函数

var name = function funcName(param1,param2,...){

return ...

}

4、构造器函数

function FuncName(param1,param2,...){

this.xxx = param1;

this.xxx = param2;

...

}

5、立即函数

(function(param1,param2,...){

return ...

})(arg1,arg2,...);

var a = function(param1,param2,...){

return ...

}(arg1,arg2,...);

!function(param1,param2,...){

return ...

}(arg1,arg2,...);

+function(param1,param2,...){

return ...

}(arg1,arg2,...);

说明:构造器函数就是其他语言中的“类”,需要用new关键词进行实例化,通常是名词,按编程惯例以大写字母开头。param1,param2是形参,arg1,arg2是实参。立即函数的本质是把function(){}变成表达式,然后执行,所以我们不能直接用function(){}(),必须先通过括号、赋值、逻辑运算符或者数字运算符把function(){}变成一个表达式,然后加上括号才能执行。

函数的属性和方法

函数是一个对象,所以它也有自己的属性和方法。

name属性:函数的名称

length属性:函数形参的个数

prototype属性:指向该函数的原型对象

call()方法和apply()方法:是间接调用该函数的方法,第一个参数是调用上下文,就是函数内部this的指向。

bind()方法:将函数绑定到某个对象上

toString()方法:返回字符串,一般是函数的完整源码

函数的调用方式

1、作为函数调用:函数名称(); 函数中的this === window

2、作为对象的方法调用:对象.方法名(); 函数中的this === 对象

3、作为构造器调用:需要配合new操作符,而且函数中不能有显式的return返回对象。函数中的this === 实例

4、使用call或者apply调用:重新指定函数中this的指向,即函数上下文context,使用方式如下。

要调用的函数或方法.apply(context, 参数数组)

要调用的函数或方法.call(context, 参数列表)

总结:以上4种方法都可以调用某个函数(如果函数是某个对象的属性,就称为“方法”),区别就是函数中的this指向不同。函数被调用时,会隐式传递两个参数this和arguments,其中arguments表示传递的实参,它是一个类数组。

相关文章

  • js函数

    函数 函数就是重复执行的代码片。函数定义与执行 变量与函数预解析: JavaScript解析过程分为两个阶段,先是...

  • js函数

    函数 函数就是重复执行的代码片。函数定义与执行 变量与函数预解析: JavaScript解析过程分为两个阶段,先是...

  • 详解js中常见函数及IIFE(立即执行函数)

    1. 常见函数 函数声明和函数表达式不同之处在于: Javascript引擎在解析javascript代码时会‘函...

  • javascript函数解析

    在javascript中,函数是第一型对象(First-class Object),可以从以下几个方面来理解。 可...

  • JavaScript类型与函数解析

    JavaScript类型与函数解析 快应用是基于nodejs开发的,因此我们必须掌握JavaScript这门语言,...

  • JavaScript的预解析

    在JavaScript中有一种机制就是:“预解析机制” 简单来说就是在解析过程中会先将函数声明和变量声明提前解析函...

  • Javascript函数全解析

    1.函数的声明定义 两种方式: 函数声明语句 函数表达式 两种的区别:第一种,函数的定义会在执行上下文开始执行代码...

  • JS函数

    JavaScript parseInt() 函数parseInt() 函数可解析一个字符串,并返回一个整数。 pa...

  • 函数与作用域

    1.函数声明和函数表达式有什么区别?Javascript 中函数声明和函数表达式是存在区别的,函数声明在JS解析时...

  • Lamda-闭包-匿名方法

    Lamda--Java 例子 闭包 常见在JavaScript,Lua可以实现变量往上级解析.本质匿名函数

网友评论

      本文标题:javascript函数解析

      本文链接:https://www.haomeiwen.com/subject/ulvbwttx.html