1 2015.11.1 犀牛书读书笔记 2 3 //page123 6.2 4 var person={ 5 name:"wang", 6 age:18, 7 sex:"man" 8 } 9 10 访问属性的方式有两种: 11 1. person.name; 12 2. person["name"] 13 14 可以获得属性或者给属性赋值 15 []方括号内必须是字符串,可以是字符串变量 16 用以访问关键字或是空格的属性名 17 例如: person["class"]; person["my name"] 18 19 associative array 关联数组 20 person["name"]这种访问方式类似于数组,只不过是用字符串作为索引,这种数组也称为散列、映射或是字典. 21 javascript的对象都是关联数组(或是散列、映射或是字典) 22 23 C和C++、java这类称为强类型语言strong typed,对象只能拥有固定数目的属性,并且属性名称应该提前定义好。 24 而javascript是弱语言类型,在任何对象中程序都可以创建属性,动态的给对象添加。 25 26 var customer={ 27 address0:"a", 28 address1:"aa", 29 address2:"aaa", 30 address3:"aaaa", 31 } 32 var addr=""; 33 for (var i = 0; i <4; i++) { 34 addr=customer["address"+i]+"\n"; 35 } 36 数组写法,访问对象属性的灵活性 37 38 //page125 继承 39 查询一个对象o的x属性: 40 o-->o.prototype-->o.prototype.prototype //此时也许将o.prototype赋给了其他对象 41 42 属性赋值操作首先检查原型链,判定是否允许赋值操作 43 若允许赋值,也只会在原始对象上创建属性,而不会去修改原型链 44 例子: 45 var unitcircle={r:1}; 46 var c=inherit(unitcircle); 47 c.x=1;c.y=2; 48 c.r=5; 49 unitcircle.r;//仍然为1,因为c.r会在c的域内创建r属性,不会影响原型链 50 51 访问一个没有定义的属性不会出错 52 var o={}; 53 o.sub;//undenfined------>并不会出错 54 55 var x=book&&book.subtitle&&book.subtitle.length;//&&短路原理,当为真时才执行下一项。 为假时立即赋值并退出 56 57 delete运算符可以删除对象的属性,格式为 delete person.name 或者 delete person["name"] 58 delete不能删除那些可配置性为false的对象 59 比如: 60 function f(){} 61 delele f; 62 63 64
原文:http://www.cnblogs.com/windSamW/p/4951450.html