var obj = { sayHello:function(){ console.log(this); function test(){ console.log(this); } test(); } }; obj.sayHello(); obj.test();有什么问题
时间: 2023-09-02 13:09:33 浏览: 76
这段代码的问题在于 `obj.test()` 会报错,因为 `test()` 函数并没有在 `obj` 对象中定义,所以不能通过 `obj` 对象来调用它。另外,`test()` 函数中的 `this` 指向的是全局对象(浏览器中是 `window` 对象),而不是 `obj` 对象。如果想让 `test()` 函数中的 `this` 指向 `obj` 对象,可以使用箭头函数或者 `bind()` 方法来改变 `test()` 函数中的 `this` 指向。例如:
```
var obj = {
sayHello: function() {
console.log(this); // 输出 obj 对象
const test = () => {
console.log(this); // 输出 obj 对象
}
test();
}
};
obj.sayHello();
```
阅读全文