4 回答
TA贡献1836条经验 获得超5个赞
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;
TA贡献1943条经验 获得超7个赞
在js中,调用function的apply()或者call()可以覆盖this原先的指向。但是call()和apply()的用法略有不同;
用apply()时,参数需要用Array;
JavaScript有一套完全不同于其它语言的对this的处理机制。
TA贡献1831条经验 获得超9个赞
就是函数本身的意思 比如 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; } 和这种方法是一个效果
TA贡献1872条经验 获得超3个赞
这么写就会好理解些
document.getElementById("textinput").onclick=function(){
alert(this.value);
}
这样就好理解了,this就是指 document.getElementById("textinput")
添加回答
举报