《javascript高级程序设计》括号包裹函数名

发布于 2022-09-12 04:36:59 字数 566 浏览 24 评论 0

为什么第二部分的代码会报错呢?提示: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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

栖迟 2022-09-19 04:36:59

分号。在每个语句后面都加上分号,js有ASI机制,最好不要省略;省略分号的后果就是语句等同于把换行去掉将三个语句并列调用:
object.getName()(object.getName)()...

object.getName()返回的是undefined,它不是一个函数所以报错了,如果你getName return一个函数就发现报错没了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文