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,不能包含数字,双引号

方法体

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>
时间: 2024-08-03 10:49:01

js Object的相关文章

创建 JS Object 实例

创建 Object 实例的方式有两种.第一种是使用 new 操作符后跟 Object 构造函数,如下所示: var person = new Object(); person.name = "Jack"; person.age = 27; 第二种方式如下所示: var person = { name: "Jack", age: 27 } 使用第二种方式时,如果花括号内为空,则表示定义只包含默认属性和方法的对象.如下所示: var person = {}; perso

JS object factory and inherit sample

/* * Object factory */ function objectFactory(jsonObj){ function objectEntity(){ } if(typeof jsonObj == "object"){ for(var index in jsonObj){ objectEntity.prototype[index] = jsonObj[index]; } } return objectEntity; } var Person = objectFactory({

js Object.keys

Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置.不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的.但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的.为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面. 我们把这

Convert JS object to JSON string

Modern browsers (IE8, FF3, Chrome etc.) have native JSON support built in (Same API as with JSON2). So as long you're not dealing with IE6/7 you can do it just as easily as that: var j={"name":"binchen"}; JSON.stringify(j); // '{"

[JS][Object][XScript]Printer Control

打印控件 ScriptX 1.先下载.cab档 并放置在网页数据夹 http://www.meadroid.com/scriptx/sxdownload.asp 2.输入以下程序 ■ 输入正确的版本及cab文件位址 原文:大专栏  [JS][Object][XScript]Printer Control 原文地址:https://www.cnblogs.com/chinatrump/p/11491048.html

JS Object类型

object类型  对象数据类型 js数据类型中的对象数据类型,由多组[属性名:属性值]组成   或者说  多组 '键值对' 组成 key : value var obj={name:"张三",age:6}; var personInfo ={ name = "张三"; age:28; height:"180cm"; weight:"60kg"; } var obj ={name:"zhufeng"};//

js Object.create 初探

1.作用 Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__. https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/create 2.Object.create内部实现 Object.create = function (o) { var F = function () {}; F.prototype = o; retur

js - Object常用属性(一)

Object.defineProperty && Object.defineProperties ECMAS-262第5版在定义只有内部采用的特性时,提供了描述了属性特征的几种属性.ECMAScript对象中目前存在的属性描述符主要有两种,数据描述符(数据属性)和存取描述符(访问器属性),数据描述符是一个拥有可写或不可写值的属性.存取描述符是由一对 getter-setter 函数功能来描述的属性. Object.defineProperty && Object.defin

js Object 的冻结、密封、扩展的相同以及不同点

Object.freezed() 冻结 检查函数 Object.isFrozen(obj) Object.seal() 密封   检查函数 Object.isSealed(obj) Object.preventExtensions()扩展   检查函数 Object.isExtensible(obj) 共同点: 都不能添加新的属性(有一个例外就是属性是对象的时候,可以在这个子属性上添加属性(因为对象是一个引用类型)) 不同点: Object.freezed() 和 Object.seal()