JavaScript——obj.name和obj['name']的区别
1.从功能上看,这两种访问对象属性的方法没有任何区别。 但方括号语法的主要优点是可以通过变量
来访问属性。
举个栗子:
let arr = [
{
id:0,
price:10,
click:1
},
{
id:1,
price:999,
click:6
},
{
id:2,
price:5,
click:2
},
]
function sortFn(options,type='asc'){
return function(a,b){
if(type == 'asc'){
// return a.options>b.options?1:-1
return a[options]>b[options]?1:-1 //因为options是变量所以要用方括号访问
}else{
return a[options]>b[options]?-1:1
}
}
}
console.table(arr.sort(sortFn('price','des')));
此处的options是一个变化的,函数传进来的变量值,所以使用方括号来进行访问。
- 如果方括号内的不是变量,则元素需要加上双引号,例如:obj["age"] = 18
2. 通常情况下,除非必须使用变量采访问属性,否则我们建议使用点表示法。

浙公网安备 33010602011771号