Javascript将对象值分配给新对象

时间:2013-04-05 17:28:27

标签: javascript oop

所以我使用选项以文字对象方式将值传递给新对象。

var obj = new myObject({height:'500',width:'300');


function myObject(options){

}

我不确定将这些值分配给对象的最佳路径,以便这样做。

 function myObject(options){

...assignment...   

alert(this.width);

    }

2 个答案:

答案 0 :(得分:7)

function myObject(options){

   // copy the options into the current object
   for (var key in options) {
       if (options.hasOwnProperty(key)) {
           this[key] = options[key];
       }
   }

   alert(this.width);     // 300
}

var obj = new myObject({height:'500',width:'300'});

您甚至可以扩展此概念,您可以使用默认属性值myObject,并且可以使用options对象覆盖它们:

function myObject(options){
    // DEFAULTS
    this.name = 'Box';
    this.width = '100';
    this.height = '100';

   // copy the options into the current object
   for (var key in options) {
       if (options.hasOwnProperty(key)) {
           this[key] = options[key];
       }
   }

   alert(this.width); 
}

var obj = new myObject({height:'500',width:'300'});     // alert: 300
var obj2 = new myObject({height: '500'});               // alert: 100

答案 1 :(得分:0)

var obj = new myObject({height:'500',width:'300'});

function myObject(options){
  alert(options.width);
}