首页 > 试题广场 >

下面关于this对象的理解正确的是 ()

[不定项选择题]
下面关于this对象的理解正确的是 ()
  • 在不手动改变this指向的前提下,this总是指向函数的直接调用对象
  • 如果有new关键字,this指向new出来的那个对象
  • this总是指向函数的间接调用者
  • IE中attachEvent中的this总是指向全局对象window
箭头函数被你吃了?
发表于 2020-04-12 18:28:15 回复(10)
1.在事件中,this指向触发这个事件的对象(特殊的是:IE中的attachEvent中的this总是指向全局对象window)。
2.this总是指向函数的直接调用者(而非间接调用者)
3.new后面就是构造函数,构造函数中的this指向的就是当前的对象
发表于 2019-09-19 11:05:09 回复(0)
非间接调用者不是直接调用者吗???
发表于 2019-09-21 22:01:48 回复(8)
把握不准,选了c
发表于 2019-09-23 10:28:32 回复(1)
b是错的,假设我new的function里返回一个空对象,引用的那个变量就不是this了吧
发表于 2021-06-14 13:18:16 回复(0)
题目存疑;
D选项绑定事件,IE使用attachEvent,FF使用addEventListener,除了函数名、参数的不同,还有个关于this指针的差异。

在FF中,绑定的事件处理函数被调用时,this指向事件绑定的object,而IE中,this指向window对象。简单的做法,是将事件处理函数定义为对象属性,然后通过匿名函数进行事件绑定。

发表于 2022-04-19 20:43:11 回复(0)
A.箭头函数怎么说
发表于 2021-02-01 10:08:30 回复(0)

疑问:A 选项即使不考虑 箭头函数 的情况,那是否需要考虑 super.foo()this 指向情况?

class Parent {
    foo () {
        console.log(this)
    }
}

class Sub extends Parent {
    foo () {
        super.foo()
    }
}

let m = new Parent()
let n = new Sub()
m.foo()  // Parent {}
n.foo()  // Sub {}

ES6 里,子类非静态方法里使用 super 是指向父类的 prototype 对象的;但它也规定,通过 super 调用的父类原型方法,其中的 this 指向当前类(子类)的实例
如果按照 A 选项的说法,那上述 super.foo() 打印的内容应该是 Parent.prototype 对象才对

发表于 2020-12-16 22:27:23 回复(0)
我真的是服了,这个题,,小学生出的吧,边界问题太多了
发表于 2020-12-15 22:53:51 回复(0)
就在牛客碰到一样的题目,不过那个是选bd,就搞笑.。
发表于 2021-07-28 20:55:38 回复(0)
apply和call被你吃了?
发表于 2021-05-24 15:15:37 回复(0)
=-=
这是文字游戏吧?
发表于 2019-12-21 10:39:11 回复(0)