javascript笔记整理系列-函数
程序员文章站
2022-06-08 20:48:20
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);