<script> str = "window"; const obj = { str: "object", fn: () => { console.log(this.str); }, fn2: function () { console.log(this.str); return { str: "newObj", fn: () => { console.log(this.str); } } }, }; obj.fn(); obj.fn2(); </script>
时间: 2024-02-10 11:30:58 浏览: 30
答:代码的输出结果如下:
- "window"
- "object"
- "window"
在全局作用域中,变量str被声明为"window"。在obj对象中,有两个方法:fn和fn2。fn是一个箭头函数,箭头函数的this指向其父级作用域(即全局作用域),所以输出"window"。fn2是一个普通函数,函数内部的this指向obj对象本身,所以输出"object"。fn2返回了一个新的对象,其内部的箭头函数的this仍然指向其父级作用域(即全局作用域),所以输出"window"。