一、对象
定义:由若干个键值对组成的无序集合,每个属性存放一个原始值、对象或函数。
属性:用数据值来描述他的状态
行为:用来改变对象行为的方法
二、创建对象
1、 隐式声明方式:var obj = {}
var obj = {
name:'Tom',
introduce:function(){
console.log('I am Tom')
}
}
2、Object方式(构造函数式) :var obj = new Object();(object构造函数创建对象)
3、通过自定义的构造函数创建对象
function 名(){}
var obj = new 名()
function Person(){}
var Tom = new Person()
Tom就是一个对象
注:用隐式声明的方式创建对象时,js在创建时是按Object式创建的(本质)
三、添加属性
注:如果属性值是函数,我们称它为对象的方法,否则叫属性。
1、声明时添加
var obj = {属性名:属性值,属性名:属性值...}
2、声明后添加
1、obj.属性名 = '属性值'(通过“.”添加)
2、obj['属性名'] = '属性值'(通过“[]”添加)
注:“.”后跟字符串,“[]”中的属性名必须要用引号,否则会被当作变量
var dog = {}
dog.name = '旺财'
dog.wang = function(){
console.log('汪汪汪')
}
dog.wang()
var dog = {}
dog['name'] = '大黄'
dog['tongues'] = function(){
console.log('大黄吐舌头')
}
dog.tongues()
四、修改对象数据
var bird = {feather:'羽毛',color:'white',type:'鸟类'}
bird.color = 'pink'
五、查询对象数据
console.log(bird.feather)
console.log(bird['feather'])
六、删除对象数据
delete bird.feather
七、清空数据对象
bird = {}
八、销毁对象
bird = null
注:
js的垃圾回收机制:检测内存,如果某个对象没有被变量引用,那么就直接回收该对象
值传递:如果变量的值是基本数据类型,那么传递值的时候采用的是值传递
址传递:如果变量的值是引用数据类型,那么传递值的时候采用的是址传递
var a = 10;
var b = a;
a = 0;
var a = {num:10}
var b = a
a.num = 0