JS访问对象两种方式区别解析
导读:可以使用下面两种方式访问对象的属性和方法1.对象名.属性名对象名.方法名()2.对象名['属性名'] 对象名'方法名' var obj = { name : '小明', age : 18, say : function(){ c...
可以使用下面两种方式访问对象的属性和方法
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]);//输出对应的属性值和方法,方法未调用所以输出的是方法的代码 }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持好吧啦网。
相关文章:
1. CSS3实例分享之多重背景的实现(Multiple backgrounds)2. intellij idea中spring boot properties文件不能自动提示问题解决3. Android自定义Dialog框样式4. 使用Canal实现PHP应用程序与MySQL数据库的实时数据同步5. 一篇文章带你了解JavaScript-语句6. 详解IDEA搭建springBoot方式一(推荐)7. asp.net core服务限制堆内存大小的操作方法8. intellij idea写Python教程9. Android Studio导入jar包过程详解10. IntelliJ IDEAx导出安卓(Android)apk文件图文教程