说明(2017.4.2):
1. 对象的动态特性:
(1)在js中,一个对象需要属性,就可以利用“对象名.属性 = 值”的方式为其添加,只要赋值成功,对象就新增这个属性。
(2)对象属性的访问形式:
*点语法:o.name
*关联数组:o[name],注意,name必须是一个字符串,否则会把name默认为一个变量名使用。
(3)曾经使用:
1 function mix(o1,o2){ 2 for(var k in o2){ 3 o1[k] = o2[k]; 4 } 5 }
(4)凡是需要给对象动态添加成员的时候,必须使用关联数组的语法。
(因为不知道属性名也不知道属性值,如果用o.xxx的方式,会把xxx当成属性名,但其实xxx是一个变量,并没有xxx这么一个属性,例如上面的k)
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 9 </body> 10 <script type="text/javascript"> 11 var o = { 12 name: "张三", 13 sayHello: function(){ 14 console.log("你好,我叫" + this.name); 15 } 16 }; 17 // 使用关联数组,读取name的值,调用sayHello方法 18 console.log(o["name"]); 19 o["sayHello"](); 20 // obj[...]()[...]() 21 // obj.xxx().xxxx()链式编程 22 for(var k in o){ 23 if(typeof o[k] == "function"){ 24 o[k](); 25 }else{ 26 console.log("log: " + o[k]); 27 } 28 } 29 </script> 30 </html>