为什么第二部分的代码会报错呢?提示:object.getName(...) is not a function
var name = 'The Window'
var object = {
name: 'My Object',
getName: function() {
return this.name
}
}
console.log(object.getName()) // My Object
console.log((object.getName)()) // My Object
console.log((object.getName = object.getName)()) // The Window
var name = 'The Window'
var object = {
name: 'My Object',
getName: function() {
console.log(this.name)
}
}
object.getName()
(object.getName)() // 报错
(object.getName = object.getName)() // 报错
分号。在每个语句后面都加上分号,js有ASI机制,最好不要省略;省略分号的后果就是语句等同于把换行去掉将三个语句并列调用:
object.getName()(object.getName)()...
object.getName()返回的是undefined,它不是一个函数所以报错了,如果你getName return一个函数就发现报错没了