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. 通常情况下,除非必须使用变量采访问属性,否则我们建议使用点表示法。

posted @ 2020-10-28 11:24  小昱同学  阅读(1138)  评论(0)    收藏  举报