《javascript高级程序设计》括号包裹函数名
为什么第二部分的代码会报错呢?提示: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)() // 报错
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
分号。在每个语句后面都加上分号,js有ASI机制,最好不要省略;省略分号的后果就是语句等同于把换行去掉将三个语句并列调用:
object.getName()(object.getName)()...
object.getName()返回的是undefined,它不是一个函数所以报错了,如果你getName return一个函数就发现报错没了