1 <script type="text/javascript">
2 var myObject=maker({
3 first:f,
4 last:1,
5 state:s,
6 city:c
7 });
8 ////////////////////////////////////////
9 Object.beget=function(o){
10 var F=function(o){};
11 F.prototype =o;
12 return new F;
13 }
14 var myMammal={
15 name:'Herb the Mammal',
16 get_name:function (){
17 return this.name;
18 }
19 says:function(){
20 return this.saying||'';
21 }
22 };
23 var Cat={
24 name:'',
25 saying:'meow'
26 };
27 var myCat=Object.beget(Cat);
28 myCat.name='mimi';
29
30 var myCat=Object.beget(myMammal);
31 /*引用*/
32 var x=stooge;
33 x.nickname='Curly';
34 var nick=stooge.nickname;
35 //对象永远不会被拷贝,因为它是引用类型的。
36 var a={},b={},c={};
37 //a,b,c 每个都有一个不同的控对象。
38 a=b=c={};
39 //a,b,c都引同一个控对象。
40
41 /*更新*/
42 stooge['first-name']='Jerome';
43 //如果对象之前并没有拥有那个属性名,那么该属性就被扩充到该对象中
44 stooge['middle-name']='Lester';
45 stooge.nickname='Curly';
46 flight.equipment={
47 model:'Boeing 777'
48 };
49 flight.status='overdue';
50 /*检索*/
51 要检索的对象中包含的值,可以采用在[]后缀中括注一个字符串的方式,
52 还可以通过.表示法。
53 如果属性名是一个常量,而不是变量的话,优先使用.表示法,因其可读性更好
54 stooge["first-name"] //"Joe"
55 flight.departure.IATA //"SYD"
56 stooge["middle-name"] //underfined
57 flight.states //underfined
58 stooge["first-name"] //underfined
59
60 ||运算符可以填充默认值:
61 var middle=stooge["middle-name"]||"(none)";
62 var states=flight.states||"unknown";
63
64 &&运算符可以用来避免错误
65 flight.equipment //underfined
66 flight.equipment.model //underfined
67 flight.equipment && flight.equipment.model //underfined
68 </script>