服务器之家

服务器之家 > 正文

JS访问对象两种方式区别解析

时间:2021-09-03 16:34     来源/作者:小猿笔记

可以使用下面两种方式访问对象的属性和方法

1.对象名.属性名    对象名.方法名()

2.对象名["属性名"]   对象名"方法名"

?
1
2
3
4
5
6
7
8
9
10
11
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遍历对象时

?
1
2
3
4
5
for(var x in obj){     
  console.log(x);    //输出obj中的属性名,方法名
  console.log(obj.x);//想要用.的方法输出对应的属性和方法  结果是undefined,原因在于JS语言中.方法可以用来声明,声明对象属性的方式就是属性名.属性值
               //这里实际先声明了obj的x属性,并且未初始化该属性,然后输出了该属性值,所以为undefined
 }

利用[]方式只能访问和读取,不会定义新的属性

?
1
2
3
4
for(var x in obj){     
      console.log(x);    //输出obj中的属性名,方法名
      console.log(obj[x]);//输出对应的属性值和方法,方法未调用所以输出的是方法的代码
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/KillBugMe/p/13153801.html

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部