javascript中的this指向谁

学习 时间:2026-04-04 21:14:27 阅读:3257
javascript中的this指向谁function a(){obj1.b(this)}然后调用obj.a()b函数里面的this指向谁,是指向obj还是指向obj1,为什么,

最佳回答

丰富的硬币

自然的板栗

2026-04-04 21:14:27

谁调用的a就指向谁,如果没写调用的对象,那么是windows。obj。a();这时a里面在b后面括号里的this是obj。如果直接调用a(),那么里面的this是windows(所有全局变量函数的对象) 再问: 可是obj1调用了b()呀,为什么不是他 再答: function b(o) { 。。。。。。 this。doxxx(); // 这个this是obj1 } function a() { obj1。b(this); // 这个this是obj } obj。a = a; obj。a(); obj1。b(this),这句话里this作为实参,传入到b函数里,这时并不在b函数内,只有进入了这里: function b(o) { // 从这里开始 。。。。。。 // 到这里结束才是b的函数里。 } 所以这句话obj1。b(this)的this是在a的函数体内,所以就是调用a方法的对象。再问: 1。function b(0)形参不是跟b函数声明的局部变量不是一个部分吗,为什么是属与a函数的? 2。String。prototype。html_encode=function(){return(this。replace(/&/,&))},如果有字符串调用该方法"123"。html_encode();里面的this指向"123" function a(){“123”。html_encode()} obj。a()这时这个html_encode()函数里的this指向谁,是obj还是"123" 再答: 回答1:首先那个不是零0,是o(字母欧……)。obj1。b(this);这样调用的时候,this是实参,不在b的范围内,形参见下面 function b(obj) // 这个obj才是形参,形参可以当做是一个局部变量 { } 回答2:当然是123了,因为你用的"123"。html_encode(),是对"123"调用的html_encode,所以在html_encode内,this就是"123"。 this写在哪个函数里就是哪个函数的this,function a(){ obj1。b(this);}这么写的时候this还是在a里面,并不是在b里面,传递参数是把变量赋值过去的。

最新回答共有2条回答

  • 淡定的树叶
    回复
    2026-04-04 21:14:27

    谁调用的a就指向谁,如果没写调用的对象,那么是windows。obj。a();这时a里面在b后面括号里的this是obj。如果直接调用a(),那么里面的this是windows(所有全局变量函数的对象) 再问: 可是obj1调用了b()呀,为什么不是他 再答: function b(o) { 。。。。。。 this。doxxx(); // 这个this是obj1 } function a() { obj1。b(this); // 这个this是obj } obj。a = a; obj。a(); obj1。b(this),这句话里this作为实参,传入到b函数里,这时并不在b函数内,只有进入了这里: function b(o) { // 从这里开始 。。。。。。 // 到这里结束才是b的函数里。 } 所以这句话obj1。b(this)的this是在a的函数体内,所以就是调用a方法的对象。再问: 1。function b(0)形参不是跟b函数声明的局部变量不是一个部分吗,为什么是属与a函数的? 2。String。prototype。html_encode=function(){return(this。replace(/&/,&))},如果有字符串调用该方法"123"。html_encode();里面的this指向"123" function a(){“123”。html_encode()} obj。a()这时这个html_encode()函数里的this指向谁,是obj还是"123" 再答: 回答1:首先那个不是零0,是o(字母欧……)。obj1。b(this);这样调用的时候,this是实参,不在b的范围内,形参见下面 function b(obj) // 这个obj才是形参,形参可以当做是一个局部变量 { } 回答2:当然是123了,因为你用的"123"。html_encode(),是对"123"调用的html_encode,所以在html_encode内,this就是"123"。 this写在哪个函数里就是哪个函数的this,function a(){ obj1。b(this);}这么写的时候this还是在a里面,并不是在b里面,传递参数是把变量赋值过去的。

上一篇 “毛绒玩具”用英语怎么说?

下一篇 109页是上册的