为了账号安全,请及时绑定邮箱和手机立即绑定

请问在javascript中,function里this的指向是怎样的?

/ 猿问

请问在javascript中,function里this的指向是怎样的?

偶然的你 2019-07-09 10:06:20

在javascript中,function里this的指向是怎样的?


查看完整描述

4 回答

?
一只甜甜圈

Javascript中一个函数的this关键字的行为相对其它语言有些不同。在严格模式和非严格模式间也有区别。

在大多数情况下,this的值由函数如何调用来决定。this值不能在函数执行过程中赋值设置,并且每次函数调用时this值可能也不相同。ES5通过添加bind方法设置函数的this值,无论函数如何被调用。(this值永久不变)

全局上下文中:

    全局执行环境中(函数外部),无论在与不在严格模式下this指向全局对象。

    console.log(this.document === document); //true

    //在web浏览器中,window对象即是全局对象:

    console.log(this === window); // true

    this.a=37;

    console.logn(window.a); //37

    function上下文

    在函数内部,this值依赖于函数如何调用。

简单调用:

    function f2(){

        "use strict";//使用严格模式

        return this;

    }

    f2() === undefined;


查看完整回答
反对 回复 2019-07-14
?
慕函数4003404

在js中,调用function的apply()或者call()可以覆盖this原先的指向。但是call()和apply()的用法略有不同;
用apply()时,参数需要用Array;
JavaScript有一套完全不同于其它语言的对this的处理机制。

查看完整回答
反对 回复 2019-07-14
?
天涯尽头无女友
就是函数本身的意思 比如
function demo(){
        this.width = 100;

        this.height = 200;

    return this

}
这里的意思就是本身这个函数的宽度 高度用this代替 
其实它的原型是
function demo()
{
    var p = new Object();

    p.width = 100;

    p.heighr = 200;

    return p;

}
和这种方法是一个效果


查看完整回答
反对 回复 2019-07-14
?
守着一只汪

这么写就会好理解些
document.getElementById("textinput").onclick=function(){
alert(this.value);
}
这样就好理解了,this就是指 document.getElementById("textinput")

查看完整回答
反对 回复 2019-07-14

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信