Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问和创建对象的首选方式';谁的财产?_Javascript - Fatal编程技术网

Javascript 访问和创建对象的首选方式';谁的财产?

Javascript 访问和创建对象的首选方式';谁的财产?,javascript,Javascript,在Javascript中,您可以通过以下方式使用属性名称创建对象: var person = { name: "Tucker" }; 但也是这样: var person = { "name": "Tucker" }; 这两个相等吗?哪一个比较好 访问属性也是如此: person["name"] = "Dale"; vs 在雄辩的JavaScript中,作者说括号之间的部分可以是任何表达式。将其转换为字符串以确定其引用的属性名称。 所以,我想直接在括号之间放一个字符串会被认为是最佳实践 最后

在Javascript中,您可以通过以下方式使用属性
名称创建对象:

var person = { name: "Tucker" };
但也是这样:

var person = { "name": "Tucker" };
这两个相等吗?哪一个比较好

访问属性也是如此:

person["name"] = "Dale";
vs

在雄辩的JavaScript中,作者说括号之间的部分可以是任何表达式。将其转换为字符串以确定其引用的属性名称。

所以,我想直接在括号之间放一个字符串会被认为是最佳实践

最后但并非最不重要的一点是,可以使用点符号访问属性:

person.name = "Dale";
person.name

如果属性是有效的变量名。与看似更灵活的括号表示法相比,使用这种表示法真的有意义吗?

这些都是相同的,唯一的区别是,如果您的键是保留关键字,则需要引号:

var person = { name: "Tucker" };
var person = { "name": "Tucker" };
var person = { "for": "Tucker" }; //Need quotes here
访问时,应用相同的规则

person["name"] = "Dale"; //Sets the person object's name attribute to "Dale", the brackets are needed for variables or expressions.
person.name = "Dale";    //Same operation, different syntax
person[name] = "Dale";   //Sets the attribute equivalent to the value of the variable name, not necessarily "name"
与看似更灵活的括号表示法相比,使用这种表示法真的有意义吗


这完全取决于您,或者决定项目编码标准的人。点表示法更简单,让人想起Java/C/C++(如果你喜欢这类东西的话),正如你所说的,括号更灵活

这些都是相同的,唯一的区别是,如果您的关键字是保留关键字,则需要引号:

var person = { name: "Tucker" };
var person = { "name": "Tucker" };
var person = { "for": "Tucker" }; //Need quotes here
访问时,应用相同的规则

person["name"] = "Dale"; //Sets the person object's name attribute to "Dale", the brackets are needed for variables or expressions.
person.name = "Dale";    //Same operation, different syntax
person[name] = "Dale";   //Sets the attribute equivalent to the value of the variable name, not necessarily "name"
与看似更灵活的括号表示法相比,使用这种表示法真的有意义吗


这完全取决于您,或者决定项目编码标准的人。点表示法更简单,让人想起Java/C/C++(如果你喜欢这类东西的话),正如你所说的,括号更灵活

没有“最佳方法”,这取决于你在做什么

var person = { name: "Tucker" };
可以,但如果“name”实际上是“name with a space”,则需要:

var person = { "name with a space": "Tucker" };
用于访问属性,除非您处于。。。在循环中,我建议使用点符号:

person.name = "Dale";
person.name
当然你不能这样做:

person."name with a space"
我们也要这样做:

person["name with a space"]

没有“最佳方式”,这取决于你在做什么

var person = { name: "Tucker" };
可以,但如果“name”实际上是“name with a space”,则需要:

var person = { "name with a space": "Tucker" };
用于访问属性,除非您处于。。。在循环中,我建议使用点符号:

person.name = "Dale";
person.name
当然你不能这样做:

person."name with a space"
我们也要这样做:

person["name with a space"]

每次我都可以使用person.name;当我需要通过变量名访问时使用person[name],每次我都可以使用person.name;需要通过变量名访问时使用person[name]