. 如下代码片段的运行结果是 var obj =(a:1,b:function 0 falert(this.a)f); var tun =obj.b; fund; 单选题2.0分 弹出a B 弹出1 弹出undefined D) 什么也看不到
时间: 2024-03-13 08:47:46 浏览: 112
代码片段会弹出 `undefined`。
首先,这段代码片段中的对象定义有语法错误,应该使用花括号 `{}` 包裹对象的属性值,例如:
```javascript
var obj = { a: 1, b: function() { alert(this.a); } };
```
接下来,在执行 `var fun = obj.b;` 时,将对象 `obj` 中的方法 `b` 赋值给了变量 `fun`。在这个过程中,方法 `b` 与对象 `obj` 的绑定关系丢失了。
最后,执行 `fun()` 时,方法 `b` 中的 `this` 指向全局对象 `window`,因此弹出的是 `this.a`,即 `window.a`,而全局对象中并没有定义属性 `a`,因此返回 `undefined`。
阅读全文