js Object
对象
var ob = {};
键值对
可以做为key的有 :数字,boolean(某些浏览器不支持,比如IE),字符串(不包含标识符)
可以作为value的有 :一切可以解析为具体值的代码
var o = {true:3,sdf:2,2:1};
取值[]
alert(o["true"]); //3 alert(o[1==1]); //3 alert(o[true]); //3 alert(o["sdf"]); //2 alert(o["s"+"d"+"f"]); //2 alert(o[sdf]); //Uncaught ReferenceError: sdf is not defined alert(o["2"]); //1 alert(o[3-1]); //1 alert(o[2]); //1
var o = {key:1,key:2,key:3}; alert(o["key"]);//3
- 先解析中括号里的内容,然后转成字符串key查询value
- 中括号里的标识符需要预先定义
- 对象中存在相同key时,取后者
- 遭遇error后,下面的代码不继续执行
取值.
alert(o.true); //3 alert(o."true"); //Uncaught SyntaxError: Unexpected string alert(o.sdf); //2 alert(o.2); //Uncaught SyntaxError: Unexpected number
- 点后只能跟字母组成的key,不能包含数字,双引号
删除
The delete
operator removes a property from an object.
Syntax
delete expression
where expression should evaluate to a property reference, e.g.:
delete object.property delete object['property']
方法体
function f(a){ return a; } var o ={f:f}; alert(o.f);//function(a){return a;} alert(o.f());//undefined alert(o.f(1));//1
方法调用
var o = {a:f(1)}; alert(o.a); //1
错误的方法调用
function f1(a){ } var o = {a:f1(1)}; alert(o.a);//undefined alert(o.a(1));//Uncaught TypeError: undefined is not a function });
获取对象取key与value
var o = { true: 1, false: 2, 1 : 3, aaa: 4 }; for (key in o) { alert(key + ":" + o[key]); }
- key为关键字,不能用key1等代替
- 这种方法取到的key均为字符串,如:"1","0","true","false"
- 可用eval() 得到本来的值,eval("false")==false
var s = "asdf"; var b = "false"; alert(eval(b));//false alert(eval(s));//Uncaught ReferenceError: asdf is not defined
jQuery
<script type="text/javascript" src = "js/jquery-1.10.2.min.js" ></script>
$.each(o,function(i,n){ alert(i+":"+n);// 第i个n元素 });
扩展***************************
var o1={};
var o2={a:1};
var o3={a:2,b:2}
var o = $.extend(o1,o2,o3);
for(k in o){
alert(k+":::::::::"+o[k]);
}
- 请事先引入jQuery,src以实际情况为准。
- jQuery.extend
- 继承,即扩展某个对象
- 名字相同直接替换,不是与运算。
- 名字不同,补充。
+++++++++++++++动手试一试(本文章使用Chrome浏览器测试)+++++++++++++++++
利用文本创建一个简单的html文件。
aaa.txt
aaa.html
<html> <head> <script type="text/javascript"> var sdf = 'aaa'; var o = { true: 21, false: 11, sdf: 3, aaa: 4 }; alert(o[sdf]); </script> </head> <body> </body> </html>