使用对象字面值创建新对象(函数)

JavaScript - Create New Object (Function) Using an object literal?

本文关键字:对象 函数 创建 字面值 新对象      更新时间:2023-09-26

我有一个函数定义在我的JavaScript有两个属性:sizeurl:

function IconInfo() {
    this.size = size;
    this.url = url;
}

在另一个函数中,我创建了一个新的IconInfo实例,并以这种方式设置属性:

function SomeFunction() {
    var icon = new IconInfo();
    icon.size = 64;
    icon.url = "http://somesite.com/image1.png";
}

有没有一种方法可以像这样创建一个实例:

  var icon = new IconInfo({
      size : 64,
      url  : "http://somesite.com/image1.png"
  });

我更喜欢那个符号,它看起来更简洁,更容易阅读。

=========================== ================================

根据Tim的回答按以下方式做:

var icon = {
  size : 64,
  url  : "http://somesite.com/image1.png"
};

我有以下问题。

假设我有两个函数,它们具有完全相同的属性和构造函数参数:

function Func1(x) {
    this.x = x;
}
function Func2(x) {
    this.x = x;
}

我有一个容器,可以保存两种类型:

function Container() {
    this.f = null;
}

如果我使用该方法添加一个函数,它实际将是什么类型?

...
var container = new Container();
container.x = new f { // is f Func1 or Func2?
    x: 10;
}

有很多选项,但保持简单…你可以这样做:

var icon = {
  size : 64,
  url  : "http://somesite.com/image1.png"
};

你不需要声明一个"类型",但是你可以…像这样:

function IconInfo(size, url)
  this.size = size;
  this.url = url;
);
var icon = new IconInfo(2, "www.google.com");

你可以把它写得更简洁。首先,您忘记在IconInfo中设置变量;应该是这样:

function IconInfo(size, url) {
    this.size = size;
    this.url = url;
}
要在其他函数中创建新的IconInfo,您只需像这样调用它:
function SomeFunction() {
    var icon = new IconInfo(64, "http://somesite.com/image1.png");
}