zno2

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>

 

posted on 2016-08-05 18:47  zno2  阅读(208)  评论(0编辑  收藏  举报

导航