欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javascript笔记整理系列-函数

程序员文章站 2023-11-03 21:17:40
javascript笔记整理系列-函数 1 函数定义 在javascript中,函数也是对象,函数的原型是function.prototype。 我们可以将函数当作对象使用,包...

javascript笔记整理系列-函数

1 函数定义

javascript中,函数也是对象,函数的原型是function.prototype。 我们可以将函数当作对象使用,包括当作函数的参数等。typeof getsum; //function 函数有属性和方法。 函数内部的变量arguments是参数数组。

1.1 函数声明

function funname(parameters){
    //...
}

1.2 函数表达式

函数表达式实际上是创建一个匿名函数,然后存储在变量中。
var getsum = function(a, b){
    return a + b;
}

2 函数参数

javascript中函数的参数并不像c#那样严格,不会验证参数的类型、个数、是否为null/undefined。 javascript函数的内部包含隐式参数arguments,是该函数参数数组。 javascript函数的参数也是值传递的。

3 函数提升

函数声明会被移动到其作用域的顶端。 函数声明的调用可以在函数声明之前。 函数表达式无法提升。

4 函数调用的this

谁调用的函数,this指向谁。全局变量内的函数在中指向全局对象window;node中指向globa对象。

5 自调用函数

自调用函数其实就是将匿名函数当作一个函数对象,然后调用。
(function(){
    return 3 + 5;
})();

如果上面的代码看起来有点迷糊,那么拆分来看:

//首先我们将匿名函数赋值给变量,形成一个函数表达式:
var getsum = function(){
    return 3 + 5;
}
//然后我们调用getsum方法:
getsum();

//还看不明白?没关系 我们把上面一行代码的setsum再换回匿名函数
(匿名函数)();
//到这里是否明白了呢?

6 函数对象的方法

6.1 tostring()

函数的tostring方法返回值为函数声明的代码字符串。

var fun = function(){
    return 3 + 5;
}
console.log(fun.tostring());    //function(){//...};

6.2 call()

call方法用来替换方法内部的this指向。正常调用函数,函数内部this指向调用函数的对象;使用call方法可以指定函数内部this指向的对象。 传入的第一个参数即函数内部this指向的对象。 如果不传参数,默认指向全局对象。

funobj.call(thisobj, arg1, arg2,...)

6.3 apply()

apply方法与call方法其实相同,不过只有两个参数,第二个参数是方法实际参数的数组集合。
funobj.apply(thisobj, arrayargs);