`
struas
  • 浏览: 66318 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

javascript 的对象学习

阅读更多
  1. /**  
  2.  * window级别对象 使用para: value 方式定义  
  3.  * 也可以理解为静态类  
  4.  * 可以直接访问其内部的方法和属性  
  5.  * testWindowClass.id testWindowClass.m()  
  6.  */  
  7. var testWindowClass = {   
  8.     //属性   
  9.     id: "WId0",   
  10.     //方法   
  11.     m : function() {   
  12.         alert("window object method");   
  13.     }   
  14. }   
  15.   
  16. /**  
  17.  * 扩展window对象的扩展方法   
  18.  * 为对象增加方法或属性  
  19.  * 直接访问 testWindowClass.method3()  
  20.  */  
  21. testWindowClass.method3 = function() {   
  22.     alert("--window method3--");   
  23. };   
  24.   
  25. /**  
  26.  * 普通JS对象  
  27.  * 类似JAVA中的CLASS类  
  28.  * 使用this.param = value; 方式定义  
  29.  * 初始化对象后才可以访问其内部的属性和方法  
  30.  * var t = testObjectClass();  
  31.  * t.objectMethod(); t.id;  
  32.  */  
  33. var testObjectClass = function() {   
  34.     //方法   
  35.     this.objectMethod = function() { alert("--object class method--"); };   
  36.     //属性   
  37.     this.id = 0;   
  38. }   
  39.   
  40. /**  
  41.  * 普通JS对象  
  42.  */  
  43. var testBaseClass = function() {   
  44.     //id: "0"  --error   
  45.     this.id="0";   
  46.     this.method1=function(){ alert("----testBaseClass:method1()----"); }   
  47.      
  48.     //扩展testObjectClass对象 类似于继承 testBaseClass继承testObjectClass   
  49.     testObjectClass.apply(this);   
  50.      
  51.     //将testWindowClass.method3方法应用到testBaseClass对象中去执行   
  52.     testWindowClass.method3.apply(this);   
  53. }   
  54.   
  55. //扩展类的方法 原型(prototype)链方式   
  56. testBaseClass.prototype.method2 = function() {   
  57.     alert("----testBaseClass:method2()----");   
  58. };   
  59.   
  60. //测试方法   
  61. function test() {   
  62.     var test44 = new testBaseClass();   
  63.     //alert(test44.id);   
  64.     //test44.method1();   
  65.     //alert(testWindowClass.id);   
  66.     //alert(testBaseClass.id);   
  67.     //test44.method2();   
  68.     //testWindowClass.method3();   
  69.     test44.objectMethod();   
  70. }   
  71.   
  72. //-----------------------------------------------------------   
  73.   
  74. /**  
  75.  * 一些JS框架源码中使用的对象声明方式  
  76.  * var Obj = (function() {  
  77.  *    //私有属性  
  78.  *    this.id = 0;  
  79.  *    //私有方法  
  80.  *    this.m = function(){alert("some method")};  
  81.  *    return {  
  82.  *        //公有方法  
  83.  *        init : function() {this.id = 1;}  
  84.  *    };    
  85.  * })();  
  86.  *  
  87.  * 该对象声明使用匿名函数 var Obj = (function() {})()  
  88.  * 注意 该段代码的结尾处加上了'()' 表示声明后立即执行该段函数  
  89.  * 使用方式 Obj.init();  
  90.  * 这其中的 Obj的内容即为执行匿名函数的结果  
  91.  * 在上面的匿名函数执行后会返回 { init : function(){} };这个对象  
  92.  * 这是就可以直接通过 Obj.init(); 调用其返回的对象中的方法  
  93.  * 这种方式实现了私有方法/属性与公有方法属性的分离  
  94.  * 只有return对象中的方法/属性是可见的  
  95.  */  
  96.   
  97. //-----------------------------------------------------------   
  98.   
  99. /**  
  100.  * 一个应用测试  
  101.  */  
  102. //定义一个基础教师类   
  103. var BaseTeacher = function() {   
  104.     this.id = 0;   
  105.     this.type = "base teacher";   
  106.     this.showInfo = function() {   
  107.         alert("----showInfo teacher'type: " + this.type);   
  108.     };   
  109. }   
  110.   
  111. //给基础教师类增加name属性   
  112. BaseTeacher.prototype = {   
  113.     name: "I don't know!"  
  114. }   
  115.   
  116. //定义一个中文教师类   
  117. var ChineseTeacher = function() {};   
  118. //中文教师类继承基础教师   
  119. ChineseTeacher.prototype = new BaseTeacher();   
  120. //修改中文教师类的type属性值   
  121. ChineseTeacher.prototype.type = "chinese teacher";   
  122.   
  123. //定义一个英文教师类   
  124. var EnglishTeacher = function() {};   
  125. //英文教师类继承基础教师   
  126. EnglishTeacher.prototype = new BaseTeacher();   
  127. //修改英文教师类的type属性值   
  128. EnglishTeacher.prototype.type = "english teacher";   
  129.   
  130. //定义一个意大利语教师类   
  131. var ItalyTeacher = function() {   
  132.     //将基础教师类的属性方法赋给意大利语教师对象   
  133.     BaseTeacher.apply(this);   
  134. }   
  135.   
  136. function testBase() {   
  137.     //var baseTeacher = new BaseTeacher();   
  138.     //alert("teacher'type: " + baseTeacher.type);   
  139.     //alert("teacher'name: " + baseTeacher.name);   
  140.     var chineseTeacher = new ChineseTeacher();   
  141.     var englishTeacher = new EnglishTeacher();   
  142.     var italyTeacher = new ItalyTeacher();   
  143.     //alert("chineseTeacher.type: " + chineseTeacher.type);   
  144.     //alert("chineseTeacher.id: " + chineseTeacher.id);   
  145.     //chineseTeacher.showInfo();   
  146.     //alert("englishTeacher.type: " + englishTeacher.type);   
  147.     //alert("englishTeacher.id: " + englishTeacher.id);   
  148.     //englishTeacher.showInfo();   
  149.     italyTeacher.showInfo();   
  150. }   
  151. //---end---  
分享到:
评论

相关推荐

    javascript对象参考手册

    JavaScript对象是编程语言的核心组成部分,尤其在Web开发中扮演着至关重要的角色。"JavaScript对象参考手册"涵盖了这一...通过深入学习,你将能够更好地理解和应用JavaScript对象,从而提升你的编程技能和项目质量。

    面向对象JavaScript精要(英文原版pdf)

    ### 面向对象JavaScript精要 #### 一、书籍概览 本书《面向对象JavaScript...通过学习本书,读者可以全面掌握面向对象编程的基本概念,并学会如何将这些概念应用到JavaScript中,从而编写出更加健壮、可维护的代码。

    Javascript面向对象编程.

    JavaScript是一种广泛应用于Web开发的脚本语言,尤其在前端领域占据着核心地位。面向对象编程(Object-Oriented Programming,OOP)是...学习这些材料将有助于深入理解JavaScript的面向对象编程,提升你的编程技能。

    JavaScript对象笔记.rar

    什么是对象 简单点说,编程语言中的对象是对现实中事物的简化。例如,我们一个人就是一个对象,但是编程...在后面的JavaScript对象笔记中,记录了菜鸟在学习JavaScript对象的大多数资源,希望这些资源对你也有价值。

    学习Javascript中的对象

    学习Javascript中的对象

    JavaScript学习(一)

    JavaScript学习(一) JavaScript是一种广泛应用于网页和网络应用的脚本语言,由 Netscape 的 Brendan Eich 在1995年发明。它主要用于客户端的网页交互,赋予网页动态功能,如响应用户操作、处理数据、与服务器通信...

    JavaScript学习深入—面向对象编程

    - **原型链**:每个JavaScript对象都有一个原型对象,这个原型对象也有一个原型,以此类推,形成一个链状结构。当试图访问一个对象的属性时,JavaScript引擎会沿着这个原型链查找,直到找到该属性为止。 ```...

    JavaScript学习指南 高清 PDF

    这份"JavaScript学习指南"高清PDF,无疑为想要深入理解JavaScript的初学者或有一定基础的开发者提供了宝贵的资源。下面,我们将深入探讨JavaScript的一些关键知识点。 1. **基础语法**:JavaScript的基础包括变量、...

    JavaScript 帮助 学习 文档

    这个“JavaScript帮助学习文档”包含了丰富的资源,旨在帮助初学者和进阶者深入理解和掌握JavaScript的核心概念。 首先,JavaScript的基础知识是至关重要的。这包括变量、数据类型(如字符串、数字、布尔值、数组、...

    javascript面向对象学习笔记

    JavaScript是一种基于原型和函数式...理解这些概念对于深入学习JavaScript和开发复杂的JavaScript应用至关重要。在实际编程中,应根据需求选择合适的方法创建对象和实现继承,以优化性能并保持代码的可读性和维护性。

    javascript完全学习手册1 源码

    3.1 JavaScript对象概述 43 3.1.1 对象的概念 43 3.1.2 使用JavaScript对象 基础知识 44 3.2 Array对象 46 3.2.1 创建Array对象 46 3.2.2 Array对象属性 47 3.2.3 Array对象方法 48 3.3 String对象 51 3.3.1 创建...

    JavaScript学习指南

    在JavaScript的学习过程中,首先需要理解其基础语法,包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、数组、对象等)、操作符(算术、比较、逻辑、三元运算符)以及流程控制语句(条件语句if....

    JavaScript对象经典小册 chm

    综上所述,"JavaScript对象经典小册 chm"涵盖了JavaScript对象和数组的基础知识,以及相关的属性、方法和事件处理程序,是学习和提升JavaScript技能的宝贵资源。通过深入学习这些内容,开发者能够更好地应对复杂的...

    JavaScript学习指南 第3版.pdf

    JavaScript学习指南第三版,学习JavaScript的同学欢迎来下载

    javascript完全学习手册2 源码

    3.1.2 使用JavaScript对象基础知识 3.2 Array对象 3.2.1 创建Array对象 3.2.2 Array对象属性 3.2.3 Array对象方法 3.3 String对象 3.3.1 创建String对象 3.3.2 String对象属性 3.3.3 String对象方法...

    关于JavaScript的学习资料

    本学习资料包包含了两本非常实用的JavaScript电子书,旨在帮助初学者和进阶者深入理解和掌握JavaScript的核心概念和技术。 《Script56》是一本详尽介绍JavaScript的电子手册,可能涵盖了从基础语法到高级特性的全面...

    JavaScript面向对象编程指南.pdf

    JavaScript面向对象编程是指在JavaScript语言中使用面向对象的方法来编写程序。JavaScript是一种高级的、解释型的编程语言,它支持面向对象的编程范式,允许开发者创建对象、使用继承和多态等面向对象的特性。以下是...

    JavaScript入门学习资料包

    总之,这个"JavaScript入门学习资料包"为初学者提供了一个全面学习JavaScript的平台,从基础到高级,从理论到实践,逐步建立起扎实的JavaScript知识体系。通过系统学习和不断实践,你将能够熟练掌握这门强大的编程...

    javascript面向对象编程.pdf

    总而言之,学习现代JavaScript面向对象编程,有助于开发者在认识这门语言演化的基础上,运用面向对象的设计和编程模式来构建更加健壮和可维护的JavaScript应用程序。同时,测试和调试是保证代码质量不可或缺的环节,...

Global site tag (gtag.js) - Google Analytics