js函数
Galloping_Leo 2020-01-15 JavaScript
# 调用函数
函数调用时浏览器都会传递两个隐含的parameter。函数的执行上下文对象this、封装实参的对象arguments。
arguments是一个类数组对象,他也可以通过索引操作数据,获取长度,在调用函数时传递的实参都会在arguments中保存,不定义形参也可以使用arguments来使用实参,只不过烦
使用形式:arguments[0]//第一个实参 arguments[1]//第二个实参……
arguments的callee属性:这个属性对应当前正在执行的函数对象
fun.call(obj,参数1,参数2……) 修改函数的this为obj
fun.apply(obj,[参数1,参数2,……]),与call效果相同,只是传入的参数必须是一个数组对象 [……]
# 两个方法
call 方法
通过函数对象来调用 (function.call(obj,parameter)) 使用此方法函数就会执行,改变函数执行时的this为参数parameter
apply 方法
与call唯一的区别就是 传参数时必须是一个封装的数组对象[……]
# IIFE (立即执行函数)
Immediately-Invoked Function Expression
(function(){
var a = 1
function test(){
a++
console.log(a)
}
window.$ = function(){
return {
test:test//向全局暴露内部函数
}
}
})()
//调用 $()代表函数执行后的返回对象,$().test(),调用对象的test方法
$().test()//2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
作用:隐藏实现(外部程序访问不了)、不会污染命名空间、用来编写js模块
