在以下示例中,为什么结果的值是'undefined'?请解释一下这是如何计算的?
<script>
var foo = {
bar: function() { return this.baz; },
baz: 1
};
var a = (function(){
return typeof arguments[0]();
})(foo.bar);
console.log(a);
</script>
注意:我已经浏览了以下链接,但并没有对此进行解释 例。这里没有构造函数... How to access the correct `this` inside a callback?
答案 0 :(得分:1)
public bool CheckAll(params object[] refs) => refs.All(x => x != null);
...
if (CheckAll(control?.Meta, control?.State))
{
}
在Window上下文中执行,但是它没有在名称 bar 中定义任何对象属性(该属性是 foo < / em>)。这就是为什么您得到arguments[0]()
的原因。要解决此问题,可以绑定对象。
更改
undefined
收件人
foo.bar
foo.bar.bind(foo)