JS中访问对象的两种方式区别
2024-09-01 12:12:11
可以使用下面两种方式访问对象的属性和方法
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]);//输出对应的属性值和方法,方法未调用所以输出的是方法的代码
}
最新文章
- WPF DataGrid分页功能实现代码 修改原作者不能实现的部分
- 【转】Reactor与Proactor两种模式区别
- [转]ASP.NET页面之间传递值的几种方式
- c#部分---用结构体的题目- //请输入班级人数,输入每个人的学号,姓名,和语文分数、数学分数和英语分数(要求使用结构体)
- WCF Windows Service Using TopShelf and ServiceModelEx z
- [COCOS2D-X]AssetsManager
- 找个输入IPoint在某个FeatureClass上距离最近的要素
- MBProgressHUD ---
- Unicode解码、URL编码/解码
- Vue中结合Flask与Node.JS的异步加载功能实现文章的分页效果
- RMI方式Ehcache集群的源码分析
- 2019.04.12 Head First
- js常用事件
- python: 面向对象:类和对象调用类中的变量和方法
- Xamarin iOS教程之编辑界面编写代码
- 会员通过消费攒积分,升级RENEW以及降级的需求
- Samsung_tiny4412(驱动笔记07)----spinlock,semaphore,atomic,mutex,completion,interrupt
- NET 读取Word文档信息
- salt-api使用
- 解决数据库SUSPECT(置疑)状态