猿问
下载APP

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

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


偶然的你
浏览 85回答 4
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;

慕函数4003404

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

天涯尽头无女友

就是函数本身的意思 比如 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; } 和这种方法是一个效果

守着一只汪

这么写就会好理解些document.getElementById("textinput").onclick=function(){alert(this.value);}这样就好理解了,this就是指 document.getElementById("textinput")
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答