js 中this指向问题
2018-04-04 18:40
453 查看
在这里说句个人对this 一点点想法,虽然很基础;但是很总要,因为JS 是一门面向对象的编程语言,如果将来只要你想面向对象编程;那么this是必不可免的。能用面向对象就尽量用面向对象编程,因为他的课拓展性好,只不过要看你能把这个对象抽象成什么样子了。简单明了this 指的是啥呢:距离他最近的对象
一般情况下this在方法中使用;易混点:容易误认为在那个方法里面就指的那个对象,正确理解;那个对象调用的这个方法;this 就指这向这个对象,看this 指的是谁;就看距离他最近的;并且调用他所在方法的这个对象。
1:this 指的是全局对象
function test (){
this.a =1
console.log(this)}
test()
2:.作为对象方法调用,this 指代上级对象
function test2(){
console.log(this)
console.log(this.b)
}
var a = new s{}
a.b = test2
a.x =1
a.b() // a 对象 1
3:.作为构造函数调用,this 指代new 出的对象
function test(){
this.x = 1;
}
var o = new test();
alert(o.x); // 1
//运行结果为1。为了表明这时this不是全局对象,我对代码做一些改变:
var x = 2;
function test(){
this.x = 1;
}
var o = new test();
alert(x); //24.apply 调用 ,apply方法作用是改变函数的调用对象,此方法的第一个参数为改变后调用这个函数的对象,this指代第一个参数var x = 0;
function test(){
alert(this.x);
}
var o={};
o.x = 1;
o.m = test;
o.m.apply(); //0
//apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。如果把最后一行代码修改为
o.m.apply(o); //1
一般情况下this在方法中使用;易混点:容易误认为在那个方法里面就指的那个对象,正确理解;那个对象调用的这个方法;this 就指这向这个对象,看this 指的是谁;就看距离他最近的;并且调用他所在方法的这个对象。
1:this 指的是全局对象
function test (){
this.a =1
console.log(this)}
test()
2:.作为对象方法调用,this 指代上级对象
function test2(){
console.log(this)
console.log(this.b)
}
var a = new s{}
a.b = test2
a.x =1
a.b() // a 对象 1
3:.作为构造函数调用,this 指代new 出的对象
function test(){
this.x = 1;
}
var o = new test();
alert(o.x); // 1
//运行结果为1。为了表明这时this不是全局对象,我对代码做一些改变:
var x = 2;
function test(){
this.x = 1;
}
var o = new test();
alert(x); //24.apply 调用 ,apply方法作用是改变函数的调用对象,此方法的第一个参数为改变后调用这个函数的对象,this指代第一个参数var x = 0;
function test(){
alert(this.x);
}
var o={};
o.x = 1;
o.m = test;
o.m.apply(); //0
//apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。如果把最后一行代码修改为
o.m.apply(o); //1
相关文章推荐
- js中的this指向问题
- JS中的this指向问题以及apply、call、bind的使用
- js中this指向问题
- JS 中的this指向问题和call、apply、bind的区别
- js中this的指向问题
- js中的this指向问题及解决方案
- js绑定事件this指向发生改变的问题解决方法
- 如何理解JS中的this指向问题
- js 深入理解this指向问题
- js中this指向问题: (object.getName = object.getName)()为何返回“window”
- Js中的this指向问题
- what's this? 浅谈js中this的指向问题
- 关于js中this的指向问题
- 理解js中this的指向问题
- js中this指向问题
- JS中各种this指向问题
- js中函数this指向问题
- 关于JS中for循环时,作用域问题和this指针指向的总结
- 关于js构造函数中this的指向问题
- js中this指向问题