对象作为Javascript中的属性

时间:2011-10-03 20:17:08

标签: javascript oop object

我正在定义一个javascript对象并设置其属性和方法,如下所示:

function MyObject()
{
  this.prop1 = 1;
  this.prop2 = 2;

  this.meth1=meth1;
}

function meth1()
{
  // do soemthing
}

一切都很好。我的问题是如何让对象成为MyObject的属性?我实际上想要一个'关联数组'作为这些行的属性:

function MyObject()
{
  this.obj['x'] = 'val1';
  this.obj['y'= = 'val2';

  this.prop1 = 1;
  this.prop2 = 2;

  this.meth1=meth1;
}

我尝试在MyObject中声明obj,如下所示:obj = new Object;没有运气,obj不被解释为财产。

关于我做错了什么的线索?

感谢

2 个答案:

答案 0 :(得分:1)

你的意思是:

function MyObject() {
  this.obj = {'x': 'val1', 'y': 'val2'};

  this.prop1 = 1;
  this.prop2 = 2;

  this.meth1=meth1;
}

现在你可以说:

new MyObject().obj.x  //`val1`

替代语法:

this.obj = {};
this.obj.x = 'val1';
this.obj.y = 'val2';

答案 1 :(得分:0)

使用对象文字表示法通常最简单:

function MyObject()
{
  // obj as an object literal
  this.obj = {
     x: "val1",
     y: "val2",
     z: "val3"
  };

  this.prop1 = 1;
  this.prop2 = 2;

  this.meth1=meth1;
}