`
lvbaosong
  • 浏览: 33095 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

js面向对象编程之(二)—— 封装与继承

阅读更多

封装主要用意在于将实现细节隐藏,提供给客户端的只是定义良好的接口,在js中的封装同其它语言中的封装并无差异,最为简单的封装就是通过function 函数初始化类。
例如定义:
function Shape(){
         this.init = function(param1,param2){
             this.param1 = param1;
             this.param2 = param2;
            }
        }
js中函数本身就是类,我们可以通过Shape函数的prototype属性为该类添加方法,如下所示
  Shape.prototype = {
               method1:function(){alert(this.param1)},
               method2:function(){alert(this.param2)}
 }
 下面创建一个Shape实例对象
     var shape = new Shape();
     shape.init('method1','method2');
     shape.method1();
     shape.method2();
   在js中并无继承机制,但可以通过将prototype中保存的变量逐一复制也可实现类似java语言中的继承,如下所示:
Object.extend = function(destination, source) {
  for (var property in source)
    destination[property] = source[property];
  return destination;
};
function Square(){
       /*code here */
}
 Square.prototype = Object.extend(new Shape(),{method3:function(){alert('square')}});
 下面创建Square实例,进行测试:
var square = new Square();
square.init('square method1','square method2');
     square.method1();
     square.method2();
      square.method3();

完整代码如下:

<script>
function Shape(){
         this.init = function(param1,param2){
                              this.param1=param1;
                              this.param2=param2;
                      }
}
  Shape.prototype={
     method1:function(){alert(this.param1)},
     method2:function(){alert(this.param2)}
 }
    var shape = new Shape();
     shape.init('method1','method2');
     shape.method1();
     shape.method2();

	Object.extend = function(destination, source) {
		for (var property in source)
			destination[property] = source[property];
		return destination;
	};
	function Square(){
       /*code here */
	}
	Square.prototype = Object.extend(new Shape(),{method3:function(){alert('square')}});

	var square = new Square();
	square.init('square method1','square method2');
     square.method1();
     square.method2();
      square.method3();
</script>

 

分享到:
评论

相关推荐

    JavaScript面向对象编程指南.pdf

    根据提供的文件信息,我们将重点放在面向对象编程(OOP)在JavaScript中的应用上。JavaScript作为一种广泛使用的脚本语言,不仅在浏览器环境中发挥着重要作用,在服务器端开发(如Node.js)及桌面应用程序开发等领域也...

    javascript 面向对象编程.pdf javascript 设计模式与开发实践.pdf

    这两本书——"JavaScript 面向对象编程.pdf"和"JavaScript 设计模式与开发实践.pdf"将深入探讨这些主题。 面向对象编程在JavaScript中主要体现在三个方面:封装、继承和多态。封装是指将数据和操作数据的方法捆绑在...

    JAVA面向对象基础测试题-继承-封装-多态等测试题.docx

    面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它将数据和处理数据的方法绑定在一起,形成一个整体——对象。OOP 的主要特征包括封装、继承和多态。 1. **封装**:封装是将数据和操作数据的...

    JavaScript面向对象编程指南

    JavaScript是一种广泛应用于Web开发的动态编程语言,尤其在构建交互式和富媒体网站时不可或缺。...《JavaScript面向对象编程指南》这本书会是深入这一主题的好资源,建议仔细阅读并实践其中的示例。

    浅谈javascript面向对象编程

    ### 浅谈JavaScript面向对象编程 #### 一、概述 面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件。在JavaScript中,尽管语言本身并不支持传统的类(class)概念,但开发者可以通过原型继承和其他技术来...

    面向对象JavaScript开发

    JavaScript,作为一种广泛应用...JavaScript 面向对象程序设计——继承与多态.pdf 和 JavaScript 面向对象程序设计——封装.pdf 这两个文档可能深入探讨了这些主题,帮助读者深入理解并掌握JavaScript的面向对象开发。

    猜拳游戏:java面向对象,kotlin面向对象,js面向对象,3个方法开发.zip

    面向对象编程(Object-Oriented Programming, OOP)是这些语言的核心特性之一,因此我们将深入探讨面向对象编程的基本概念及其在这些语言中的应用。 面向对象编程是一种编程范式,它基于“对象”的概念,其中对象...

    JavaScript面向对象技术实现树形控件

    面向对象编程的三大核心概念——继承、封装和多态性,在JavaScript中都能找到相应的实现方式。 1. **继承与封装**:JavaScript的继承是基于原型(Prototype)的,而不是类。这意味着一个对象可以直接继承另一个对象...

    js面向对象简单教程

    ### JavaScript面向对象编程详解 #### 一、引言与背景 JavaScript作为一种解释型、基于对象的脚本语言,自1995年诞生以来,经历了从简单的表单验证功能到现代Web开发核心技术之一的巨大转变。随着AJAX技术的兴起和...

    js this关键字_面向对象编程.pdf

    虽然 JavaScript 最初并不是一种面向对象的语言,但通过其独特的特性——特别是 `this` 关键字和基于原型的继承机制——它可以用来实现面向对象编程。本文将深入探讨 JavaScript 中面向对象编程的核心概念和技术。 ...

    13、JavaScript继承实现(二) —— zInherit、xbObjects

    JavaScript是面向对象的编程语言,但其继承机制与传统的类继承有所不同。在JavaScript中,对象是基于原型(prototype)的,而不是基于类。...理解并掌握这些继承方式对于深入理解JavaScript的面向对象编程至关重要。

    JavaScript中的面向对象.pdf

    JavaScript,作为一种广泛使用的脚本语言,常常被误解为非面向对象的语言,但实际上,JavaScript完全支持面向对象编程(OOP)的三大核心原则:封装、继承和多态。尽管它的实现方式与传统的面向对象语言(如Java或C++...

    从面向过程到面向对象

    面向对象编程(OOP)随后出现,以C++和Java为代表,强调数据和操作的封装,通过类和对象的概念,实现了更高层次的抽象,提高了代码的重用性和可维护性。面向对象的三大特性——封装、继承和多态,使得代码结构更加...

    写给大家看的面向对象编程书(第3版).[美]Matt Weisfeld(带详细书签).pdf

    此外,本书还讨论了各种与面向对象概念密切相关的应用主题,包括XML、UML建模语言、持久存储、分布式计算和客户/服务器技术等。  本书内容精炼,示例简单明了,适合各层次面向对象开发人员阅读,也是高校相关专业...

Global site tag (gtag.js) - Google Analytics