簡體   English   中英

使用文字符號制作JavaScript對象

[英]Making a JavaScript object using literal notation

我正在用文字符號制作一個JavaScript對象,但不確定如何使該對象接收如下參數:

hi.say({title: "foo", body: "bar"});

而不是hi.say("foo", "bar");

當前代碼:

var hi = {
    say: function (title, body) {
        alert(title + "\n" + body);
    }
};

我之所以想要它,是因為我希望人們能夠跳過標題而只是放置正文,並對許多其他參數執行相同的操作。

因此,這就是為什么我需要類似如何使用jQuery函數的參數{parameter:"yay", parameter:"nice"}

PS我也願意修改當前方法-請記住,會有很多參數,其中一些是必需的,一些是可選的,並且不能以特定的方式進行排序。

對此沒有特殊的參數語法,只需使函數采用單個參數即可,它將成為一個對象:

var hi = {
  say: function(obj) {
    alert(obj.title + "\n" + obj.body);
  }
}

這樣的事情應該起作用:

var hi = {
    say: function(options) {
        if (options.title) alert(options.title + "\n" + options.body);
        else alert('you forgot the title!');
    }
}


hi.say({ //alerts title and body
    "title": "I'm a title",
    "body": "I'm the body"
});
hi.say({ //alerts you for got the title!
    "body": "I'm the body."
});
var hi = {
  say: function( opts ) {
     var title = (opts.title)?opts.title:"default title";
     var body = (opts.body)?opts.body:"default body";

     // do whatever with `body` and `title` just like before
     // ...
  }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM