我见过以下内容:
var field = {};
field.tf = $("#textfield");
field.date = $("td#CurrentDate");
field.name = $("input#myname");
初始化var field = {}做什么? 它是否创建了一个通用对象(字段),可以在其上动态设置属性(field.tf)?
答案 0 :(得分:10)
JavaScript在标准Number
,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但没有成员的数组) 子>
这种方便的初始化结构,以及将对象和数组嵌套在一起的能力是导致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")
};
我希望有所帮助!干杯