javascript面向对象编程之二 聊聊对象的事

javascript是基于对象的编程语言。从window到document,从方法到类,从object到Array都是对象。

先看一下JSON(javascript object notation)对象,JSON是一种脚本操作时常用的数据交换格式对象,相对于XML来说JSON是一种比较轻量级的格式,在一些 intelligence的IDE中还可以方便的通过点操作JSON对象中的成员。

JSON是一种键/值对方式来描述内部成员的格式,其内部成员可以是几乎任何一种类型的对象,当然也可以是方法、类、数组,也可以是另外一个JSON对象。

var student = {
       Name: "张三",
       Age: 20,
       Hobby: "读书",
       Books: [
         {
           BookName : "C#" ,
           Price : 70
         },
         {
           BookName : "Java" ,
           Price : 70
         },
         {
           BookName : "Javascript" ,
           Price : 80
         }
       ]
};

上面代码用JSON对象描述了一个学生的信息,他有姓名、年龄、爱好、书集等。在访问该学生对象时,可以通过student变量来操作学生的信息。

var stuInfo = "姓名:" + student.Name +
            ",年龄:" + student.Age +
            ",爱好:" + student.Hobby +
            ",拥有的书:" +
                       student.Books[0].BookName + "、" +
            student.Books[1].BookName + "、" +
                       student.Books[2].BookName;
alert(stuInfo);

这样的操作方式风格和C#也非常相像。以上的代码是静态的构造出了学生对象,学生对象的结构就确定了。在其它的编程语言中一般对象结构一旦确定就不能很方便的进行修改,但是在javascript中的对象结构也可以方便的进行改动。下面为student对象添加一个Introduce方法来做自我介绍。

student.Introduce = function() {
       var stuInfo = "姓名:" + this.Name +
              ",年龄:" + this.Age +
              ",爱好:" + this.Hobby +
              ",拥有的书:" +
              this.Books[0].BookName + "、" +
              this.Books[1].BookName + "、" +
              this.Books[2].BookName;
       alert(stuInfo)
};
student.Introduce();

student对象原来并没有Introduce方法,第一次为student.Introduce赋值会在student对象中创建一个新的成员,后面如果再为student.Introduce赋值则会覆盖上一次所赋的值。当然我们这的值是一个function。也可以用类似索引的方式来添加成员。

student["Introduce"] = function() {
      ……
};

student.Introduce();

当然添加的成员也可以删除掉。删除掉之后则成为undefined,再访问该成员时则不支持。

delete student.Introduce;
student.Introduce();
 

时间: 2024-08-03 03:38:40

javascript面向对象编程之二 聊聊对象的事的相关文章

javascript 面向对象编程 聊聊对象的事_js面向对象

先看一下JSON(javascript object notation)对象,JSON是一种脚本操作时常用的数据交换格式对象,相对于XML来说JSON是一种比较轻量级的格式,在一些intelligence的IDE中还可以方便的通过点操作JSON对象中的成员.       JSON是一种键/值对方式来描述内部成员的格式,其内部成员可以是几乎任何一种类型的对象,当然也可以是方法.类.数组,也可以是另外一个JSON对象. var student = { Name: "张三", Age: 20

学习Javascript面向对象编程之封装_javascript技巧

Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果我们要把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢?一. 生成对象的原始模式 假定我们把猫看成一个对象,它有"名字"和"颜色"两个属性. var Ca

JavaScript学习总结(二)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

一.AJAX示例 AJAX全称为"Asynchronous JavaScript And XML"(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效果. 1.1.优点 不需要插件支持 优秀的用户体验 提高Web程序的性能 减轻服务器和带宽的负担 1.2.缺点 浏览器对XMLHttpRequest对象的支持度不足,几乎所有浏览器现在都支持 破坏浏览器"前进"."后退"按钮的正常功能,可以通过简单的

深入理解JavaScript系列(17):面向对象编程之概论详细介绍_基础知识

介绍 在本篇文章,我们考虑在ECMAScript中的面向对象编程的各个方面(虽然以前在许多文章中已经讨论过这个话题).我们将更多地从理论方面看这些问题. 特别是,我们会考虑对象的创建算法,对象(包括基本关系 - 继承)之间的关系是如何,也可以在讨论中使用(我希望将消除之前对于JavaScript中OOP的一些概念歧义). 英文原文:http://dmitrysoshnikov.com/ecmascript/chapter-7-1-oop-general-theory/ 概论.范式与思想 在进行E

深入理解JavaScript系列(18):面向对象编程之ECMAScript实现_基础知识

介绍 本章是关于ECMAScript面向对象实现的第2篇,第1篇我们讨论的是概论和CEMAScript的比较,如果你还没有读第1篇,在进行本章之前,我强烈建议你先读一下第1篇,因为本篇实在太长了(35页). 英文原文:http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/ 注:由于篇幅太长了,难免出现错误,时刻保持修正中. 在概论里,我们延伸到了ECMAScript,现在,当我们知道它OOP

面向对象-javascript中这两种对象属性有什么区别?

问题描述 javascript中这两种对象属性有什么区别? 第一种:function aaa(){} aaa.a=111; 第二种:function bbb(){} bbb.prototype.b=111; 我在csdn问过第一种,大部分人说属于面向对象的范畴. 但是我看了几篇js面向对象博客,都是用第二种原型的方式: 所以想知道这两种给对象添加属性的行为,在实际应用中有什么区别? 解决方案 如果把aaa,bbb作为方法来看,这两者没有区别. 如果把aaa,bbb作为类来看,那有区别. aaa.

JavaScript——DOM操作——Window.document对象详解_javascript技巧

一.找到元素:     docunment.getElementById("id"):根据id找,最多找一个:     var a =docunment.getElementById("id");将找到的元素放在变量中:     docunment.getElementsByName("name"):根据name找,找出来的是数组:     docunment.getElementsByTagName("name"):根据标签

一些有用的javascript实例分析(二)

原文:一些有用的javascript实例分析(二) 1 5 求出数组中所有数字的和 2 window.onload = function () 3 { 4 var oBtn = document.getElementsByTagName("button")[0]; 5 var oInput = document.getElementsByTagName("input")[0] 6 var oStrong = document.getElementsByTagName

JavaScript知识(二)

原文:JavaScript知识(二)  你要保守你心,胜过保守一切,因为一生的果效,是由心发出的.----O(∩_∩)O... ...O(∩_∩)O...老师因有事下午没来上课,今天就只把中午讲的知识总结一下.由于昨天只是讲了JavaScript的一些基础入门知识点,所以今天就详细地总结一下Javascript的基础. Javascript语言组成: ECMAScript:描述了该语言的语法和基本对象. DOM(Document Object Model):文档对象模型,描述处理网页内容的方法和