对象

var ob = {};

键值对

可以做为key的有 :数字,boolean(某些浏览器不支持,比如IE),字符串(不包含标识符)

可以作为value的有 :一切可以解析为具体值的代码

var o = {true:3,sdf:2,2:1};

取值[]

alert(o["true"]);     //
alert(o[1==1]); //
alert(o[true]); //
alert(o["sdf"]); //
alert(o["s"+"d"+"f"]); //
alert(o[sdf]); //Uncaught ReferenceError: sdf is not defined
alert(o["2"]); //
alert(o[3-1]); //
alert(o[2]); //
var o = {key:1,key:2,key:3};
alert(o["key"]);//3
  • 先解析中括号里的内容,然后转成字符串key查询value
  • 中括号里的标识符需要预先定义
  • 对象中存在相同key时,取后者
  • 遭遇error后,下面的代码不继续执行

取值.

alert(o.true);    //
alert(o."true"); //Uncaught SyntaxError: Unexpected string
alert(o.sdf); //
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));//

方法调用

var o = {a:f(1)};
alert(o.a); //

错误的方法调用

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>

js Object的更多相关文章

  1. JS Object.defineProperties()方法

    JS Object.defineProperties()方法 描述: Object.defineProperties()方法为目标对象同时配置多个属性. 语法: Object.defineProper ...

  2. js & Object reference bug

    js & Object reference bug bug object ref bug onClickButton (type = ``) { let { publishDate: publ ...

  3. JS Object Deep Copy & 深拷贝

    JS Object Deep Copy & 深拷贝 针对深度拷贝,需要使用其他方法 JSON.parse(JSON.stringify(obj));,因为 Object.assign() 拷贝 ...

  4. JS Object Deep Copy & 深拷贝 & 浅拷贝

    JS Object Deep Copy & 深拷贝 & 浅拷贝 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refe ...

  5. js & object & prototype & __proto__ & prototype chain

    js & object & prototype & proto & prototype chain constructor prototype === instance ...

  6. JS - Object and Property的删除用法

    在JS中,Object和Property的删除用法: var myObject = {name:'jimmy', age:12, height:123} delete myObject["j ...

  7. js object(对象)

    http://www.cnblogs.com/pingchuanxin/p/5773326.html Object(对象)是在所有的编程语言中都十分重要的一个概念,对于事物我们可以把他们看作是一个对象 ...

  8. js object 常用方法总结

    Object.assign(target,source1,source2,...) 该方法主要用于对象的合并,将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身 ...

  9. js Object.create 初探

    1.作用 Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__. https://developer.mozilla.org/zh-CN/docs/W ...

  10. JS object(对象)的学习汇总

    Object(对象)是在所有的编程语言中都十分重要的一个概念,对于事物我们可以把他们看作是一个对象,而每一个事物都有自己的表示的属性和对于某一信息作出的相应的操作.而这些东西就变成了事物的属性和方法. ...

随机推荐

  1. hadoop之 hadoop日志存放路径

    环境:[root@hadp-master hadoop-2.7.4]# hadoop versionHadoop 2.7.4 Hadoop的日志大致可以分为两类: (1).Hadoop系统服务输出的日 ...

  2. Makefile中进行宏定义-***

    实际上是gcc命令支持-D宏定义,相当于C中的全局#define: gcc -D name gcc -D name=definition Makefile中可以定义变量(和宏很像),但是是给make解 ...

  3. 嵌入式linux开发:杂七杂八的话

    1. 编译器:常用的有Sourcery,linaro等.当然芯片厂家一般也会提供可用的编译器. 2. 将配置和编译时的输出O到其他位置:make O=some_dir 这样做的好处是保持源代码树的干净 ...

  4. C++11新特性介绍 01

    阅读目录 1. 概述 2. long long 类型 3. 列表初始化 4. nullptr 空指针 5. constexpr变量 6. constexpr函数 7. using类型别名 8. aut ...

  5. Creating an Android Project(创建一个android项目)

    一个android项目包含了你的应用程序中的所有源代码文件,我们可以通过android sdk tools轻松地创建一个拥有默认文件跟文件夹的android项目. 这部分课程我们将展示两种创建andr ...

  6. Eutils用法总结

    好久没更新了,这里都长草了... 总结下Eutils的用法,参考<E-utilities Quick Start>,没时间看英文的可以参考下. 简介 Eutils全称是The Entrez ...

  7. 2个版本并存的python使用新的版本安装django的方法

    2个版本并存的python使用新的版本安装django的方法 默认是使用 pip install django 最新版的django会提示  要求python版本3.4以上,系统默认的版本是2.7.5 ...

  8. Luajit-2.1.0-beta1的发布和生成arm64用bytecode的解脱

    前情提要:由于苹果要求2015年2月1日上架的新app必须支持64位的arm64,旧的app也得在6月1日支持64位,来源.于是unity3d弄出了il2cpp这种花式的玩法来进行64位支持,而对于当 ...

  9. log.error(msg)和log.error(msg,e)的显示区别

    log.error(msg): [2017-10-18 11:31:07,652] [Thread-7] (CmsCtlDataUploadFileExchange.java:50) ERROR co ...

  10. .net core 下的一个docker hello world

    接触 docker 有段时间了,发现docker这个东西,真是越用越爽. 那就从零开始跑一个 docker simple . 方法一: 步骤一: dotnet new mvc --name myweb ...