var name = "the window";
var object = {
name: "My Object",
getName: function () {
console.log(this.name)
}
}
object.getName(); //My Object
(object.getName)(); //My Object
(object.getName)()
不是相当于
(function () {
console.log(this.name)
})();
一个匿名函数自执行吗?不是应该指向 window
吗?
为什么还是指向了 object
?
上面的两次不同的执行有什么区别?
这个跟
this
指向没有关系,你是对运算符优先级
有误解,看这里:这里说明一下
成员访问符【.】
和函数调用符【()】
的优先级,他们本来优先级一样高(级别19),而且是从左到右
的,什么意思呢?数学运算:
a + b - c
和(a + b) - c
,有区别吗?完全没有,括号就是多余。所以:
object.getName()
和(object.getName)()
就是一回事。