使用工厂方法创建对象
function createPerson(a,b,c) {var obj=new Object(); obj.a=a;obj.b=b;obj.c=c; }
构造函数 习惯首字母大写
执行流程 立刻创建新的对象 将新建的对象设置为函数中的this, 逐行执行函数中的代码 将新建的对象作为返回值返回
使用同一构造函数创建的对象称为一个类
使用instanceof检查一个对象是否是一个类的实例
原型prototype 每创建一个函数,解析器中都会向函数中添加一个属性prototype;该属性对应的对象成为原型对象
当函数以构造函数调用时,它创建的对象都会有个隐藏的属性指向该构造函数的原型对象 用_proto_来访问该属性
原型对象 公共区域 所有一个类的实例都可以访问到这个原型对象 可将对象中共有的内容设置到原型对象中
MyClass.prototype ==值,函数
用in检查属性时,函数的原型有时也会返回true 用HasOwnProperty()检查函数自身是否有该属性
原型对象也有原型 Object的原型对象没有原型
ToString 在页面打印一个对象时,事件上是输出的对象的toString()方法的返回值
可以修改toString来改变对象的输出方式
垃圾回收(GC) 当一个对象没有被任何变量或属性引用时,称为垃圾
JS中会自动销毁垃圾,不需要操作 只需要将不再使用的Object设为null
内建对象
数组(Array) 用数字来作为索引(index)操作元素 存储性能更好 开发中常用到
添加元素 数组[索引] = 值
读取元素 数组[索引]
获取数组的长度 数组.length
向数组最后一个位置添加元素 数组[数组.length] = 值