对象是一组属性方法的无序集
除了字符串、数值类型、布尔类型、null、undefined 之外的其他都是对象类型 对象都是引用类型
Object类型对象、数组类型对象
如果一个普通函数前面加了new 操作符 则这个函数就是构造函数 //Object()也是一个普通函数
//大概流程 new操作符会创建一个对象 然后对象执行Object()函数 最后返回一个对象实例
var t = new Object(); //new 跟 typeof 都是操作符
t.name = 19
t.age = 'jack'
t.run = function(){
console.log('running...')
}
访问
t.age t['age']
字面量创建方式 也称为使用 json对象的方式
var t = {
name:'jack',
run:function(){ //对象的函数称为方法
console.log('running...')
}
}
数值类型 布尔类型 undefined类型 都是放在栈上的
对象类型都是引用类型、string是一个特殊的引用类型
引用类型 存放在堆中
引用类型 在栈中存放了堆的地址
删除对象的属性(只能删除自己加的)
var t = {
age: 10
}
delete t.age
通过 in运算符 可以检测属性是否属于对象的自定义属性
t.name='123'
console.log('name' in t)
对象的原型与构造函数
每个对象都有自己的私有原型对象(除了null)
构造函数就是构造对象的时候执行的函数 比如Object
对象的原型 可以通过它的构造函数的prototype 获得 Object.prototype 这个是标准的
每个对象都会从自己的私有原型对象上继承原型的方法和属性 可以直接使用 //控制台查看 var t = {} t __proto__ 是t的属性 指向t的原型
t.tostring() [object,Object] object类型的Object实例
对象的封装!!
var cat = {
name : 'km',
age: 7,
run:function(){
console.log(this.name + ' running....')
}
}