<script type="text/javascript">
var myObject=maker({
first:f,
last:1,
state:s,
city:c
});
////////////////////////////////////////
Object.beget=function(o){
var F=function(o){};
F.prototype =o;
return new F;
}
var myMammal={
name:'Herb the Mammal',
get_name:function (){
return this.name;
}
says:function(){
return this.saying||'';
}
};
var Cat={
name:'',
saying:'meow'
};
var myCat=Object.beget(Cat);
myCat.name='mimi'; var myCat=Object.beget(myMammal);
/*引用*/
var x=stooge;
x.nickname='Curly';
var nick=stooge.nickname;
//对象永远不会被拷贝,因为它是引用类型的。
var a={},b={},c={};
//a,b,c 每个都有一个不同的控对象。
a=b=c={};
//a,b,c都引同一个控对象。 /*更新*/
stooge['first-name']='Jerome';
//如果对象之前并没有拥有那个属性名,那么该属性就被扩充到该对象中
stooge['middle-name']='Lester';
stooge.nickname='Curly';
flight.equipment={
model:'Boeing 777'
};
flight.status='overdue';
/*检索*/
要检索的对象中包含的值,可以采用在[]后缀中括注一个字符串的方式,
还可以通过.表示法。
如果属性名是一个常量,而不是变量的话,优先使用.表示法,因其可读性更好
stooge["first-name"] //"Joe"
flight.departure.IATA //"SYD"
stooge["middle-name"] //underfined
flight.states //underfined
stooge["first-name"] //underfined ||运算符可以填充默认值:
var middle=stooge["middle-name"]||"(none)";
var states=flight.states||"unknown"; &&运算符可以用来避免错误
flight.equipment //underfined
flight.equipment.model //underfined
flight.equipment && flight.equipment.model //underfined
</script>