Curly braces inside JavaScript arguments for functions

后端 未结 4 979
再見小時候
再見小時候 2020-12-12 19:16

What do the curly braces surrounding JavaScript arguments for functions do?

var port = chrome.extension.connect({name: "testing"});
port.postMessage         


        
相关标签:
4条回答
  • 2020-12-12 19:47

    A second possible answer has arisen since this question was asked. Javascript ES6 introduced Destructuring Assignment.

    var x = function({ foo }) {
       console.log(foo)
    }
    
    var y = {
      bar: "hello",
      foo: "Good bye"
    }
    
    x(y)
    
    
    Result: "Good bye"
    
    0 讨论(0)
  • 2020-12-12 19:52

    The curly braces denote an object literal. It is a way of sending key/value pairs of data.

    So this:

    var obj = {name: "testing"};
    

    Is used like this to access the data.

    obj.name; // gives you "testing"
    

    You can give the object several comma separated key/value pairs, as long as the keys are unique.

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

    You can also use square brackets to access the properties of the object.

    This would be required in the case of the "a-key".

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

    Using the square brackets, you can access a value using a property name stored in a variable.

    var some_variable = "name";
    
    obj[ some_variable ] // gives you "testing"
    
    0 讨论(0)
  • 2020-12-12 20:00

    Curly braces in javascript are used as shorthand to create objects. For example:

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

    Check out Douglas Crockford's JavaScript Survey for more detail.

    0 讨论(0)
  • 2020-12-12 20:12
    var x = {title: 'the title'};
    

    defines an object literal that has properties on it. you can do

    x.title 
    

    which will evaluate to 'the title;

    this is a common technique for passing configurations to methods, which is what is going on here.

    0 讨论(0)
提交回复
热议问题