1

そのため、オプションを使用して、新しいオブジェクトに値をリテラル オブジェクトの方法で渡しています。

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


function myObject(options){

}

これが機能するように、これらの値をオブジェクトに割り当てるための最良のルートはわかりません。

 function myObject(options){

...assignment...   

alert(this.width);

    }
4

1 に答える 1

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'});

デフォルトのプロパティ値を持つことができるこの概念を拡張し、オブジェクトでそれらをオーバーライドすることもできます。myObjectoptions

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
于 2013-04-05T17:31:27.640 に答える