请看注释区块
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>5-4</title>
</head>
<body>
<script>
var a = 1;
function foo() {
console.log(this.a);
}
var person = {
a: 2,
foo: foo,
}
var person2 = {
a: 3,
}
person.foo(); //这里不执行 下面的自结束运行不了
(person2.foo = person.foo)();
</script>
</body>
</html>
正在回答
同学你好,对于你的问题解答如下:
因为语法不规范,所以注释掉person.foo();这句代码就会出现报错,建议修改:在如下位置添加分好就可以了。

(person2.foo = person.foo)();这句代码运行输出的结果是1,原因如下:person2.foo = person.foo只是将person.foo赋值给person2.foo, 匿名自执行函数是window调用的,可以打印foo方法中的this查看指向。示例:

打印结果如下:

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册



恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星