JavaScript中访问对象两种方式有何本质区别?

2026-04-01 14:522阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计513个文字,预计阅读时间需要3分钟。

JavaScript中访问对象两种方式有何本质区别?

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

1. 使用点号(.)操作符: - 对象名.属性名 - 对象名.方法名()

2. 使用方括号([])操作符: - 对象名[属性名] - 对象名[方法名]()

例如:javascriptvar obj={ name: 小明, age: 18, say: function() { console.log(我是 + this.name + 我); }};

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

JavaScript中访问对象两种方式有何本质区别?

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]);//输出对应的属性值和方法,方法未调用所以输出的是方法的代码 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计513个文字,预计阅读时间需要3分钟。

JavaScript中访问对象两种方式有何本质区别?

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

1. 使用点号(.)操作符: - 对象名.属性名 - 对象名.方法名()

2. 使用方括号([])操作符: - 对象名[属性名] - 对象名[方法名]()

例如:javascriptvar obj={ name: 小明, age: 18, say: function() { console.log(我是 + this.name + 我); }};

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

JavaScript中访问对象两种方式有何本质区别?

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]);//输出对应的属性值和方法,方法未调用所以输出的是方法的代码 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。