函数的 JavaScript 参数中的花括号

Posted

技术标签:

【中文标题】函数的 JavaScript 参数中的花括号【英文标题】:Curly braces inside JavaScript arguments for functions 【发布时间】:2011-05-08 00:20:26 【问题描述】:

围绕 javascript 函数参数的花括号有什么作用?

var port = chrome.extension.connect(name: "testing");
port.postMessage(found: (count != undefined));

【问题讨论】:

【参考方案1】:

自提出此问题以来,出现了第二个可能的答案Javascript ES6 引入了Destructuring Assignment。

var x = function( foo ) 
   console.log(foo)


var y = 
  bar: "hello",
  foo: "Good bye"


x(y)


Result: "Good bye"

【讨论】:

非常感谢。这正是我一直在寻找的答案。 More here. 这实际上是正确的答案,因为问题是“函数”。 这就是答案 多么简洁的答案,赞!一直在阅读很多答案,但所有人都在用复杂的可能答案陈述技术术语。做得好 。谢谢【参考方案2】:

花括号表示一个对象字面量。这是一种发送数据键/值对的方式。

所以这个:

var obj = name: "testing";

这样用来访问数据。

obj.name; // gives you "testing"

你可以给对象几个逗号分隔的键/值对,只要键是唯一的。

var obj = name: "testing",
           another: "some other value",
           "a-key": "needed quotes because of the hyphen"
          ;

您还可以使用方括号来访问对象的属性。

这在"a-key" 的情况下是必需的。

obj["a-key"] // gives you "needed quotes because of the hyphen"

使用方括号,您可以使用存储在变量中的属性名称访问值。

var some_variable = "name";

obj[ some_variable ] // gives you "testing"

【讨论】:

【参考方案3】:

javascript 中的花括号用作创建对象的简写。例如:

// Create an object with a key "name" initialized to the value "testing"
var test =  name : "testing" ;
alert(test.name); // alerts "testing"

查看 Douglas Crockford 的JavaScript Survey 了解更多详情。

【讨论】:

【参考方案4】:
var x = title: 'the title';

定义一个具有属性的对象字面量。你可以做

x.title 

这将评估为'标题;

这是将配置传递给方法的常用技术,这就是这里发生的事情。

【讨论】:

以上是关于函数的 JavaScript 参数中的花括号的主要内容,如果未能解决你的问题,请参考以下文章

每个[重复]的es6箭头函数中的花括号

用 JSX 中的 HTML 跨度节点替换字符串中的花括号

如何在visual studio 2012中的花括号之间添加垂直线?

使用 Kotlin 的 RxJava 中的花括号和普通括号有啥区别

Javascript 箭头函数,大括号与return的省略问题

Java中的花括号本身是啥意思?