1

I've seen the folllowing:

var field = {};
field.tf = $("#textfield");
field.date = $("td#CurrentDate");
field.name = $("input#myname");

what does the initialization var field = {} do? Is it creating a generic object (field) on which properties (field.tf) can be set on the fly?

4

8 回答 8

10

Number除了标准,之外,JavaScript 有许多不同的文字语法String,这些语法在Boolean其他语言中很常见:

foo = {};

是相同的:

foo = new Object();

尽管

foo = [];

是相同的:

foo = new Array();

foo = /foo/;

是相同的:

foo = new RegExp('foo');

这些文字语法有自己的怪癖和细微差别。对于对象,键值对用逗号分隔,键和值用冒号分隔:

foo = {
    bar: 'baz',
    fizz: 'buzz'
};

相当于:

foo = new Object();
foo.bar = 'baz';
foo.fizz = 'buzz';

对于数组,数组成员只是用逗号分隔:

foo = ['bar', 'baz'];

相当于:

foo = new Array();
foo.push('bar', 'baz');

请注意,对于数组,构造函数有一个缺陷。new Array(1, 2, 3)等价于[1, 2, 3],但new Array(3)不等价于[3],而是等价于[undefined, undefined, undefined](大小为 3 且没有成员的数组)。

这种方便的初始化结构,以及相互嵌套对象和数组的能力是导致JSON 数据交换格式形式化的原因

于 2013-09-05T15:00:13.540 回答
2

一个通用对象。

它与以下内容相同:

var field = {
   tf: $("#textfield"),
   date: $("td#CurrentDate"),
   name: $("input#myname")
};
于 2013-09-05T14:58:57.540 回答
2

var something = {}在 JavaScript 中定义了一个对象。因此,如果您不知道 {} 的含义,我假设您也没有完全理解其他 3 行代码。试一试吧:

所以“字段”是一个对象,你可以给这个对象任何结构。它可以有高度、宽度、尺寸和任何你喜欢的。所以,我们这样定义我们的对象:

var field = {};

现在,如何将属性添加到对象?在面向对象编程中,我们有点 (.) 表示法。例如:person.name,请求一个人的名字。根据您的代码:

field.tf = $("#textfield");
field.date = $("td#CurrentDate");
field.name = $("input#myname");

a)首先将字段的 tf初始化为文本框的值。
b)其次,您将字段的日期初始化为文本框的值。

c) 最后将字段名称初始化为文本框的值。

您还可以将对象定义为:

var field = {
'tf'   : $("#textfield"),
'date' : $("td#CurrentDate"),
'name' : $("input#myname")
};

我希望这会有所帮助!干杯

于 2013-09-05T15:27:37.607 回答
2
var field = {};

它代表一种object数据类型。

于 2013-09-05T14:57:24.377 回答
2

它是否创建了一个可以动态设置属性(field.tf)的通用对象(字段)?

答:是的,这正是它正在做的事情。

对于它的价值,可以通过在初始声明中定义所有属性来简化问题中的代码:

var field = {
    'tf'   : $("#textfield"),
    'date' : $("td#CurrentDate"),
    'name' : $("input#myname")
};

这与原始代码完全相同,但更简洁一些。

于 2013-09-05T14:59:56.097 回答
1

它通过直接将对象文字分配给它来创建一个javascript对象。

对象字面量为创建新对象值提供了一种非常方便的表示法。对象字面量是一对围绕零个或多个名称/值对的花括号。对象字面量可以出现在表达式可以出现的任何地方:

var empty_object = {};
var stooge = {
   "first-name": "Jerome",
   "last-name": "Howard"
};
于 2013-09-05T15:06:09.490 回答
1

这只是创建空 JavaScript 对象的标准符号。你会经常看到这样的速记:

var object = { };
var array = [ ];

将其视为声明的极简版本:

var object = {
  key1: 'value1',
  key2: 'value2'
}

var array = [ 1, 2, 3, 4 ];
于 2013-09-05T14:59:49.890 回答
1

这和说的一样:

var field = new Object();

另一个例子是创建一个数组: var myArr = [ ]vsvar myArr = new Array();

于 2013-09-05T15:00:15.233 回答