1

对象字面量

//定义一个空对象,这里的空指的是其自身属性为空,dog对象继承了Object.prototype的属性和方法
var dog={}

//添加属性/方法
dog.name="Beijing"
dog.getName= function(){
    return this.name
}
//检索
dog["name"] //Beijing
dog.name //Beijing
//完全删除属性/方法
delete dog.name

引用

对象通过引用来传递,他们永远不会被复制

var Bob = dog
Bob.footers = 4
var f = dog.footers 
// 因为Bob 和f指向同一个对象,所以结果f 的结果为4

var a={}, b={}, c={}
//a,b,c每个都引用不同的空对象
a = b =c ={}
//a,b,c引用同一个空对象

原型

每个对象都连接到一个原型,并可以从中继承属性,所有字面量创建的对象都连接到Object.prototype

  • 反射

我们经常用typeof检查对象的属性,但typeof对原型链的对像也会进行检查,可以使用hasOwnProperty,他只检测对象的自有属性,不会检查原型链上的属性

man.hasOwnProperty('legs') //true
man.hasOwnProperty('constructor') //false
  • 删除

delete运算符可以删除对象的自身属性,而不会对原型链上的对象有影响,有时delete对象上的属性会导致原型链上的属性溢出来


ZONE_98F
357 声望27 粉丝