这个初始化做了什么? = {}

时间:2013-09-05 14:56:08

标签: javascript

我见过以下内容:

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

初始化var field = {}做什么? 它是否创建了一个通用对象(字段),可以在其上动态设置属性(field.tf)?

8 个答案:

答案 0 :(得分:10)

JavaScript在标准NumberStringBoolean之外有许多不同的文字语法,这些语法与其他语言相同:

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但没有成员的数组)

这种方便的初始化结构,以及将对象和数组嵌套在一起的能力是导致the JSON data interchange format

形式化的原因

答案 1 :(得分:2)

var field = {};

它表示object数据类型。

答案 2 :(得分:2)

通用对象。

与以下内容相同:

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

答案 3 :(得分:2)

  

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

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

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

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

这与原始代码完全相同,但有点整洁。

答案 4 :(得分:1)

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

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

将其视为宣言的极简主义版本:

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

var array = [ 1, 2, 3, 4 ];

答案 5 :(得分:1)

与说法相同:

var field = new Object();

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

答案 6 :(得分:1)

通过直接为其分配对象文字来创建javascript对象。

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

var empty_object = {};
var stooge = {
   "first-name": "Jerome",
   "last-name": "Howard"
};

答案 7 :(得分:1)

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

因此“field”是一个对象,您可以为此对象提供任何结构。它可以有高度,宽度,尺寸和任何你喜欢的。所以,我们定义了这样的对象:

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

我希望有所帮助!干杯

相关问题