对js对象定义几种方式的理解

JS对象属性详解
本文探讨了JavaScript中对象的创建方式及属性赋值的区别,重点分析了通过对象字面量与动态属性名设置的不同效果,揭示了JavaScript对象属性的底层实现机制。

对比以下两个程序

var domain="localhost";

var obj1={domain:"hello,world"};
var obj2={};

obj2[domain]="hello,world";

这两个是截然不同的  obj1.toString()---{domain:"hello,world"}

obj2.toString()---{localhost:"hello,world"}

也就是说通过{ }这种对象字面量直接定义对象,那个属性不管加不加引号,他就是一个字符串,而且这里不能执行任何代码

比如{domain+":8080":"hello,world"}  这是完全错误的

特别是向一个函数传入一个对象的时候,一定要注意

再看一个程序

var obj={};

var input1=document.getElementById("input1");

var input2=document.getElementById("input2");

obj[input1]="input1";

obj[input2]="input2";

注意input1,和input2是两个不同的input元素

现在执行obj.toString();  结果是什么{HTMLInputElement:"input2"}



这个对象并没有因为属性的不同,而创造两个属性

那个因为对象的属性只可能是字符串,就算你传入一个对象,也会自动将这个对象转化成字符串


转载于:https://my.oschina.net/lirongfei/blog/471242

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值