我在JavaScript中定义了一个函数,它有两个属性:size
和url
:
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"
});
我更喜欢这种符号,它看起来更简洁,更容易阅读。
=========================== 更新 ============ ====================
根据蒂姆的回答,采用以下方式:
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;
}
答案 0 :(得分:2)
有很多选择,但要保持简单..你可以这样做:
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");
答案 1 :(得分:1)
你实际上可以使它更简洁。首先,您忘记在IconInfo
内设置变量;它应该是这样的:
function IconInfo(size, url) {
this.size = size;
this.url = url;
}
要在您的其他功能中创建新的IconInfo
,您只需要像这样调用它:
function SomeFunction() {
var icon = new IconInfo(64, "http://somesite.com/image1.png");
}