`

JavaScript 学习笔记 二 对象的访问

 
阅读更多
var array = ["one","two","three"];//数组
var obj = {//对象
    field : "self",
    printInfo : function (){
        alert(this.field);
    },
    outter:{
        inne : "inner text",
        printInnerText:function(){
            alert(this.inne);
        }
    }//点运算符的左边为一个对象(属性的集合),右边为属性名,应该注意的是右边的值除了作为
     //左边的对象的属性外,同时还可能是它自己的右边的值的对象:
};//分号
var obj2 = {
    "self.ref" : obj//一个好的解决方法是使用中括号([])运算符来访问:
};
obj.printInfo();
obj.outter.printInnerText();
obj2["self.ref"].outter.printInnerText();

for(var key in obj2){
    alert(key+":"+obj2[key]);//建议在不知道对象的内部结构的时候(比如要遍历对象来获取某个属性的值),
                             //一定要使用中括号操作符,这样可以避免一些意想不到的 bug。
}

//JavaScript 对象的本身就是一个字典(dictionary),或者 Java 语言中的 Map,或者
//称为关联数组,即通过键来关联一个对象,这个对象本身又可以是一个对象,根据此定义,
//我们可以知道 JavaScript 对象可以表示任意复杂的数据结构。

//属性是由键值对组成的,即属性的名字和属性的值。
var jack = new Object();
jack.name = "jack";
jack.age = 26;
jack.birthday = new Date(1984,4,5);

var address = new Object();
address.street = "Huang Quan Road";
address.xno = "135";

//将addr属性赋值为对象address
jack.addr = address;

var ja = jack[addr];//我们在开发通用的工具包时,应该对用户可能的输入不做任何假设,
                    //通过[属性名]这种形式则总是可以保证正确性的。
alert(ja.xno);


1 楼 307622798 44 分钟前   引用 删除
博主你好,最近在看你的js系列文章,发现这篇文章运行有异常。var ja = jack[addr];这句话说addr is not defined 。请博主指教!
经测试,确实如其所说,谢谢指出 共同学习了

var ja = jack["addr"];//我们在开发通用的工具包时,应该对用户可能的输入不做任何假设,
                    //通过[属性名]这种形式则总是可以保证正确性的。
分享到:
评论
3 楼 sblig 2012-12-20  
307622798 写道
博主你好,最近在看你的js系列文章,发现这篇文章运行有异常。var ja = jack[addr];这句话说addr is not defined 。请博主指教!


测试了下,确实  谢谢
2 楼 307622798 2012-12-20  
博主,我刚刚问一下群友,才知道,原来js通过[]取属性时,属性名得加双引号。博主,你得在文章中把这个注意项加进去哦!
1 楼 307622798 2012-12-20  
博主你好,最近在看你的js系列文章,发现这篇文章运行有异常。var ja = jack[addr];这句话说addr is not defined 。请博主指教!

相关推荐

    JavaScript学习笔记之Cookie对象

    JavaScript Cookie  Cookie对象:  Cookie是一种以文件的形式保存在客户端硬盘的Cookies文件夹中的用户数据信息(Cookie数据)。  Cookie文件由所访问的Web站点建立,以长久的保存客户端与Web站点间的会话数据,...

    JavaScript笔记.doc

    二、JavaScript的程序控制结构和对象 2 1、for循环语句: 2 2、while循环: 2 3、do-while循环: 2 4、JavaScript函数: 2 5、在JavaScript中基于对象的编程: 3 6、内置的JavaScript对象: 3 7、处理对象的内置方法...

    javascript学习基础笔记之DOM对象操作

    DOM是针对XML的基于树的API,它关注的不仅仅是解析XML代码,而是用一系列相互关联的对象来表示这些代码,而这些对象可以被修改,而且无需重新解析代码就能直接访问它们。由于DOM的使用上的简便,因此它成为了Web...

    Javascript学习笔记之函数篇(四):arguments 对象

    JavaScript中arguments函数对象是该对象代表正在执行的函数和调用它的函数的参数。JavaScript 函数中 arguments 为特殊对象,无需明确指出参数名,就能访问它们。

    Java/JavaEE 学习笔记

    Java/JavaEE 学习笔记 作者在杰普学习时的学习笔记,是J2ee初学者必备手册,是大家学习J2EE开发的很好的参考笔记。 Java/JavaEE 学习笔记 内容目录: Unix 学习笔记..........7 一、Unix前言............7 二、...

    javascript从入门到跑路—–小文的js学习笔记(8)—–bom的对象及其用法—window 、History、location、navigator 、screen

    javascript从入门到跑路—–小文的js学习笔记(1)———script、alert、document。write() 和 console.log 标签 … … javascript从入门到跑路—–小文的js学习笔记目录 ** 一、BOM(Browers,Object,model)...

    J2EE学习笔记(J2ee初学者必备手册)

    HTML&JavaScript学习笔记.....................198 HTML: 超文本标记语言.......................198 1、html简介...........198 2、动态网页开发技术......................199 3、html的基本构成....................

    javascript基础语法学习笔记

     [2]DOM文档对象模型,提供访问和操作网页内容的方法的接口  [3]BOM浏览器对象模型,提供与浏览器交互的方法的接口  二、引入  引入javascript有两种办法:在页面内嵌入js代码和引入外部文件  [1]页面内嵌入 ...

    JavaScript高级程序设计学习笔记(一)

    最近为了补js的基础,开坑javascript高程,这书基础部分写得很详细很好读,搭配着MDN进行学习理解。 闲下来的时间记录一下边读边做的笔记,大多是以前编程的时候没注意过的基础知识点。 第一章 JavaScript的完整实现...

    Javascript学习笔记之 函数篇(二) : this 的工作机制

    这个对象只存在一份,它的属性在程序中任何地方都可以访问,全局对象的生命周期终止于程序退出那一刻。 全局对象初始创建阶段将 Math、String、Date、parseInt 作为自身属性,等属性初始化,同样也可以有额外创建的...

    javascript学习笔记(五)原型和原型链详解

    私有变量和函数 在函数内部定义的变量和函数,如果不对外提供接口,外部是无法访问到的,也就是该函数...这样在函数对象Test外部无法访问变量color和fn,他们就变成私有的了: 代码如下: var obj = new Test();  ale

    javascrip上百技术总集

    -(4) JavaScript面向对象的支持--(5) JavaScript面向对象的支持--(6) JavaScript精简学习1:基础知识 JavaScript精简学习2:浏览器输出 JavaScript精简学习3:图像 JavaScript精简学习4:表单 ...

    JavaScript高级程序设计学习笔记(二)

    以下的笔记是书上一些我以前学习的时候,没有太重视的js基础知识,也有一些面试知识的拓展,通过博客回顾并加深理解,希望我的学习过程对你有所帮助。 第四章 基本类型和引用类型 在ECMAScript中有两种不同数据类型...

    JavaScript高级程序设计(第3版)学习笔记10 再访js对象

    我不想也不会从语义学上去区分,对于这系列文章来说,属性就是组成对象的一个部分,广义上也包括对象的方法,而特性则是指被描述主体所具有的特征,换句话说,属性是我们可以通过编码来访问的具体存在,而特性则主要...

    javascript-learning-road:js学习笔记

    1.实例成员只能通过实例化的对象来访问。 2.静态成员只能通过构造函数来实现。 3.构造函数方法很好用,但是存在浪费内存的问题(每一次实例化对象都会开辟不同的内存空间来存放数据,甚至类方法一模一样)。 构造...

    JavaScript高级程序设计(第三版)学习笔记6、7章

    第6章,面向对象的程序设计 对象: 1、数据属性 configurable,表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或能否把属性修改为访问器属性,默认为true enumerbale,表示能否通过for-in...

    javascript设计模式之单体模式学习笔记

    单体模式提供了一种将代码组织为一个逻辑单元的手段,这个逻辑单元中的代码可以通过单一变量进行访问。 单体模式的优点是: 可以用来划分命名空间,减少全局变量的数量。 使用单体模式可以使代码组织的更为一致,...

    Java学习笔记-个人整理的

    {2.10}访问控制}{60}{section.2.10} {2.10.1}类的属性}{60}{subsection.2.10.1} {2.10.2}类的方法}{61}{subsection.2.10.2} {2.10.3}静态代码块}{62}{subsection.2.10.3} {2.11}\ttfamily final}{63}{section....

    Xpage学习笔记

    XPAGE学习笔记 1 Theme 2 2 在Xpage中使用Dojo 2 2.1 加载dojo.js 2 2.2 设置应用程序主题引入tundra.css 2 2.3 设置xpage属性引入dojo模块 3 2.4 Xpage的页面html代码 4 2.5 在xpage中使用dojo编程 4 2.5.1 按钮...

Global site tag (gtag.js) - Google Analytics