JS访问对象两种方式区别解析
更新时间:2020年08月29日 10:42:42 作者:小猿笔记
这篇文章主要介绍了JS访问对象两种方式区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
可以使用下面两种方式访问对象的属性和方法
1.对象名.属性名 对象名.方法名()
2.对象名["属性名"] 对象名"方法名"
var obj = { name : "小明", age : 18, say : function(){ console.log("我是"+this.name+"我"+this.age+"岁"); } }; console.log(obj.name); console.log(obj["name"]); obj.say(); obj["say"]();
对于已经存在的属性和方法,用.和用[]得到的结果一致、
对于不存在(未定义)的属性和方法,用.会创建这个新的属性或方法,而用[]的方式访问不会创建新的属性或方法
例如在用for-in遍历对象时
for(var x in obj){ console.log(x); //输出obj中的属性名,方法名 console.log(obj.x);//想要用.的方法输出对应的属性和方法 结果是undefined,原因在于JS语言中.方法可以用来声明,声明对象属性的方式就是属性名.属性值 //这里实际先声明了obj的x属性,并且未初始化该属性,然后输出了该属性值,所以为undefined }
利用[]方式只能访问和读取,不会定义新的属性
for(var x in obj){ console.log(x); //输出obj中的属性名,方法名 console.log(obj[x]);//输出对应的属性值和方法,方法未调用所以输出的是方法的代码 }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
浅析JavaScript定时器setTimeout的时延问题
这篇文章主要为大家详细介绍了JavaScript中定时器setTimeout有最小时延的相关知识,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下2023-11-11array.prototype.silce.call 理解分析
在很多框架中与遇到这个方法,但一时没去研究这个方法,只要前段时间被问到,尴尬无奈收场。所以学习就要追根究底的精神,废话少说,说正题。2010-04-04详解bootstrap的modal-remote两种加载方式【强化】
本篇文章主要介绍了详解bootstrap的modal-remote两种加载方式【强化】,具有一定的参考价值,有兴趣的可以了解一下。2017-01-01
最新评论