1.对象是引用操作而不是值操作
object a;object b;
a=b;如果b中有属性x;更改b.x会同时更改a.x,两者指向同一片内存空间。
2.对象的定义会每次为对象分配内存空间。使用For循环创建的对象每个都是独立内存空间,是不同的对象。
3.对象的创建
Object.create();
let o2=Object.create(null);
null导致o2不会继承任何prototype的任何属性方法,例如toString()
如果需要创建一个空对象可以使用
let o3=Object.create(Object.prototype);
object.create()方法的一个应用时其他函数无意之间的对对象的修改
let o={x:"don't change this value"};
library.function(Object.create(o));//防止修改o
4.查询和设置属性
可以使用.运算符和[]运算符访问对象的属性。
.运算符必须访问对象的属性名。[]运算符中必须得到一个字符串。例
let author=book.author;
let name=author.name;
let title=book["main title"];
设置,方法类似
book.edition=7;
book["main title"]="ECMAscript";
下述方法得到的值是相同的
object.property
object["property"]
5.下面的代码将address0-3属性拼接到addr中
let addr=""
for(let i=0;i<4;i++){
addr+=customer[address${i}
]+"\n";
}
[]运算的优势在于可以在运行时动态添加查询数据,.运算符则不行。