【问题标题】:What does curly braces inside parentheses mean in javascript?javascript中括号内的花括号是什么意思?
【发布时间】:2019-07-22 04:46:30
【问题描述】:

我对 javascript 比较陌生,我正在学习 VueJS。在启动一个新的 vue 对象时,我意识到代码类似于:

new Vue({
    el: ‘#app’,
    data: {
        title: ‘hello World’
    }
});

从使用 js 对象中我知道,我们可以像这样使用花括号来初始化对象:

var car = {
   type: "Fiat", 
   model: "500", 
   color: "white"
};

我也知道括号是用于函数的,我们可以在括号内使用花括号,如下所示:

connect({ name: "testing" });

但是 vue 中的下一个符号让我感到困惑,因为我知道 vue 是一个对象而不是一个函数,所以我不知道为什么会有括号,有人可以向我澄清一下这部分:

new Vue({});

谢谢您.. 任何回复表示赞赏

【问题讨论】:

  • 空花括号代表一个空对象。您正在向构造函数传递一个空对象。
  • 用法和connect({name: "testing"})一模一样……
  • 亲爱的 Maya,虽然您的问题有一个简单的答案,但我更喜欢提出建议。看来你对 JavaScript 语言缺乏非常基础的知识,我猜你想通过阅读代码来学习。这就像破译一种古老而被遗忘的语言,但您可以采取更好的方法...选择无数“学习 JavaScript”资源(在线阅读、视频、书籍等)中的一个,然后从基础开始。这比自己努力工作要好得多……祝你好运!
  • @deceze 但 connect 是一个函数,而 new Vue({}) 不是一个函数,所以这就是为什么我很困惑.. javascript 中是否有这样的语法来创建对象?
  • 对象构造函数函数。如果您曾经实例化过 any 对象,您可能已经注意到可以将参数传递给它;例如new Date('December 17, 1995 03:24:00').

标签: javascript object vue.js


【解决方案1】:

是的 - 与您在此处的用法相同:

connect({ name: "testing" })

new 表示构造函数,它像函数一样被调用,所以你使用括号。并且 Vue 构造函数需要一个对象,它由花括号表示。所以这个:

new Vue({})

意味着您没有向 Vue 构造函数传递任何选项。

如果您对 Vue 为什么“不是函数”感到困惑,那是因为使用 new 和类名会构造该类的实例。如果你使用的是 ES5 风格的构造函数:

function Construction(option) {
  this.option = option;
}

那么它是如何发生的就很明显了。类构造函数略有不同,但它们的创建方式没有任何区别——就像函数调用一样。和任何函数一样,您可以传递一个对象。

【讨论】:

  • 哦,我明白了,所以基本上我们正在做的是将一个对象传递给 Vue 构造函数.. 这解释了它.. 我还有一个问题:你知道当我们创建一个 vue 对象时我们是如何编写的new Vue 等。在传递给构造函数的对象中,我们没有指定该对象是什么类型;我的意思是我们从哪个类创建该对象,所以现在我想知道我们将什么类型的对象传递给 vue 对象..
  • 是的,就是这样@maya91!
  • @maya91 JS 没有对象类型。这就是 JS 的魅力和诅咒。您有无限的可能性,但您必须严重依赖他人的文档。例如。您可以将哪些选项输入到 Vue 构造函数中?你必须查一下!
猜你喜欢
  • 2012-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-09
  • 1970-01-01
  • 2012-03-22
  • 2014-04-26
相关资源
最近更新 更多