JavaScript中函数里关于指针调用的用法?

JavaScript021

JavaScript中函数里关于指针调用的用法?,第1张

函数调用

function test(){

alert(1)

}

直接调用

test()

指定内部this指针调用

(1)test.call(window)//执行test函数,将方法内部this指向window

(2)test.apply(window)///执行test函数,将方法内部this指向window

通过事件调用

window.onload = test//当页面载入时调用

window.onerror = test当页面发生错误时调用

首先明确一下,js里面没有指针这个说法,只有引用。所以应该是js如何传递函数的引用的。

function fu(){}

这里fu就是一个函数的引用变量,而fu()则是这个函数。

var n=fu()

这是把这个函数给了n,即n也是fu()这个函数的引用变量了,他可以访问fu()里面的东西。

var n=fu;

这个属于函数的引用的传递,也表示n指向了fu()函数,但是区别是,n此时不会解析函数,而上面则会开始解析函数fu()。

在箭头函数出现之前,每一个新函数根据它是被如何调用的来定义这个函数的this值:如果是该函数是一个构造函数,this指针指向一个新的对象在严格模式下的函数调用下,this指向undefined如果是该函数是一个对象的方法,this指针指向这个对象如果该函数通过 call、apply 等方法调用,则它的 this 指向该方法传入的第一个参数值但是箭头函数在调用的时候并没有 this 绑定过程,它的 this 指向在他被创建的那一刻就决定了。例如你在全局环境下定义一个箭头函数的时候,它的 this 就会指向 window 对象:<img src="https://pic2.zhimg.com/50/v2-b21d8f6533e52ba88e4b054b54e9407a_720w.jpg?source=1940ef5c" data-caption="" data-size="normal" data-rawwidth="616" data-rawheight="60" class="origin_image zh-lightbox-thumb" width="616" data-original="https://pic3.zhimg.com/v2-b21d8f6533e52ba88e4b054b54e9407a_r.jpg?source=1940ef5c"/>