Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在对象构造函数中使用对象文字符号的好处?_Javascript_Object Literal - Fatal编程技术网

Javascript 在对象构造函数中使用对象文字符号的好处?

Javascript 在对象构造函数中使用对象文字符号的好处?,javascript,object-literal,Javascript,Object Literal,我试图理解JS的精妙之处,并看到许多对象文本被传递到构造函数的示例。这种方法的好处是什么?我将如何创建使用这种方法的对象 function Cat(params) { this.name = params['name']; this.friendly = !!params['friendly']; //etc } var tom = new Cat({'name' : 'tom', 'friendly' : 'true'}); 例如: myTooltip = new YAHOO.wi

我试图理解JS的精妙之处,并看到许多对象文本被传递到构造函数的示例。这种方法的好处是什么?我将如何创建使用这种方法的对象

function Cat(params) {
 this.name = params['name'];
 this.friendly = !!params['friendly'];
  //etc
}

var tom = new Cat({'name' : 'tom', 'friendly' : 'true'});
例如:

myTooltip = new YAHOO.widget.Tooltip("myTooltip", { 
    context: "myContextEl", 
    text: "You have hovered over myContextEl.",
    showDelay: 500
});
假设我正在创建一个简单的类。许多简单的OO教程建议如下

myCat = new Cat();
myCat.name = "fluffy";
myCat.friendly = true;
myCat.lives = 9
相对于

myCat = new Cat({
    name: "fluffy", 
    friendly:true,
lives: 9
})
如何创建Cat对象以使用此方法

function Cat(params) {
 this.name = params['name'];
 this.friendly = !!params['friendly'];
  //etc
}

var tom = new Cat({'name' : 'tom', 'friendly' : 'true'});
这样做的好处是,如果收到很多命名参数,就不需要记住顺序

对我来说也更具可读性

new Cat({'name' : 'tom', 'friendly' : 'true', 'lives' : 9});

此外,提供默认值更容易,例如使用:

function Cat(params) {

  var defaults = {'friendly' : true, 'lives' : 9};

  params = _.extend(params, defaults);

}
这样做的好处是,如果收到很多命名参数,就不需要记住顺序

对我来说也更具可读性

new Cat({'name' : 'tom', 'friendly' : 'true', 'lives' : 9});

此外,提供默认值更容易,例如使用:

function Cat(params) {

  var defaults = {'friendly' : true, 'lives' : 9};

  params = _.extend(params, defaults);

}

在YUI的第一个示例中,对象文字仅用作选项字典。它在没有命名参数且函数接受许多参数的语言中非常有用。另外,在JavaScript中以这种方式使用默认值也更容易

以以下为例:

function myf(options) {
  var url = options['url'] || 'http://...';
  var method = options['method'] || 'get';
  // ...
}

// Now you can pass only what you deem necessary in the function
myf({ 'url' : 'http://stackoverflow.com' });
myf({ 'method' : 'post' });
myf({});

这个方法是出于实用目的而存在的。

在您的第一个YUI示例中,对象文字仅用作选项字典。它在没有命名参数且函数接受许多参数的语言中非常有用。另外,在JavaScript中以这种方式使用默认值也更容易

以以下为例:

function myf(options) {
  var url = options['url'] || 'http://...';
  var method = options['method'] || 'get';
  // ...
}

// Now you can pass only what you deem necessary in the function
myf({ 'url' : 'http://stackoverflow.com' });
myf({ 'method' : 'post' });
myf({});
这种方法是出于实用目的而存在的