`
rayln
  • 浏览: 424329 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JS- 封装、继承、多态

 
阅读更多
转载: http://www.cnblogs.com/silence516/articles/1509456.html


JS- 封装、继承、多态

Javascript是一门解释型的语言,是基于对象的,并不是真正的面向对象的语言,对变量类型的应用也是宽松的,其实它同样可以模拟面向对象的功能:

var newfun1 = new myfun1();
newfun1.public1(); //这是私有属性
alert(newfun1.publicvar);//这是实例属性
alert(newfun1.private1); // undefined   newfun1.privateMethod(); //运行错误
 

function myfun2(){
}
myfun2.staticvar = "这是静态属性";
myfun2.staticmethod = function(){
    alert(myfun2.staticvar);
}
var newfun2 = new myfun2();
//newfun2.staticmethod();//运行错误;
alert(newfun2.staticvar);//undefined




//静态私有成员
var myfun3 = (function(){
    function privateProperty(){
    
    }
    privateProperty.staticvar = "这是静态私有成员";
    privateProperty.staticmethod = function(){
        alert(privateProperty.staticvar);
    }
     privateProperty.staticmethod();
     return privateProperty
})();



//静态类
var funcount = 0;
var myfun4 = new function(){
    funcount++;
    this.printCount = function(){
        alert(funcount);
    }
}
myfun4.printCount(); //输出1;
myfun4.printCount(); //输出1;
myfun4.prototype.amethod = function(){
    alert("原型对象");
}//运行错误
var newfun4 = new myfun4();
newfun4.amethod();



//运行错误,说明myfun3创建并实例化之后就不能再为它添加方法,属性
new myfun3.constructor().printCount();//如果你确实想实例化,这样也可以.
//原型继承
var myfun5 = function(){

}
myfun5.prototype.myfun5_extend = function(){
    alert("这是原型继承的");
}
var myfun5_sub = function(){

}
myfun5_sub.prototype = new myfun5();
var newfun5 = new myfun5_sub();
newfun5.myfun5_extend(); //这是原型继承的
//调用继承
var myfun6 = function(){
    this.method_p = function(){
        alert("这是调用继承的");
    }
}
var myfun6_sub = function(){
    myfun6.call(this);
}

var newfun6 = new myfun6_sub();
newfun6.method_p();//这是调用继承的
//覆盖
var myfun7 = function(){
    this.method = function(){
        alert("这是父对象方法");
    }
}
var myfun7_sub = function(){
    this.method = function(){
        alert("这是子对象方法");
    }
}
myfun7_sub.prototype = new myfun7();
var newfun7 = new myfun7_sub();
newfun7.method(); //这是子对象方法,父对象方法被覆盖了.
//多态
function myfun8(a, b){
    var a = a;
    var b = b;
    if (typeof a == "number" && typeof b == "number") {
        alert(a * b);
    } else if (typeof a == "string" && typeof b == "string") {
        alert(a + b);
    } else {
        alert("输入错啦");
    }
}

myfun8(3, 4); // 输出12;
myfun8("hi,", "你好");//输出hi,你好;
myfun8("hi", 5);//输入错啦.

分享到:
评论

相关推荐

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

    OOP 的主要特征包括封装、继承和多态。 1. **封装**:封装是将数据和操作数据的方法捆绑在一起,隐藏对象的属性和实现细节,仅对外提供公共访问方式。这样可以减少外部环境对对象的影响和破坏,提高代码的安全性和...

    javascript中如何实现封装,继承和多态

    javascript中如何实现封装,继承和多态

    javascript中如何实现封装,继承和多态,并有详细

    javascript中如何实现封装,继承和多态,并有详细,我天天在传谢谢

    前端模块化脚手架,可实现类似java的封装继承多态特性

    这个名为“前端模块化脚手架”的工具,旨在为前端开发者提供一个类似于Java语言的封装、继承和多态特性的开发环境。通过这样的框架,开发者可以在JavaScript中模拟出面向对象编程的特性,使前端开发更加规范和高效。...

    JavaScript使用prototype原型实现的封装继承多态示例

    最后,通过在线HTML/CSS/JavaScript代码运行工具,可以进一步测试代码的运行结果,验证封装、继承和多态是否按预期工作。如果遇到任何问题,可以参考《javascript面向对象入门教程》、《JavaScript错误与调试技巧...

    JavaScript 继承 封装 多态实现及原理详解

    在JavaScript中,面向对象编程(OOP)的三大特性为封装、继承和多态。以下是对这些特性的详细介绍,以及在JavaScript中如何实现和原理的探讨。 封装是面向对象编程的基石之一。它通过类(class)的概念将数据(属性...

    学习Java程序入门-面向对象之封装,继承,多态(下).docx

    Java 面向对象编程之封装、继承、多态 本文将对 Java 面向对象编程的三大特性:封装、继承、多态进行详细的解释和分析。 一、封装 封装是面向对象编程的基本特性之一,指的是将数据和操作数据的方法封装在一起,...

    JS继承与闭包及JS实现继承的三种方式

    我们都知道,面向对象的三大特征——封装、继承、多态。 封装无非就是属性和方法的私有化,所以我们JS中提供了私有属性和私有方法。 而JS中并没有多态,因此我们说JS是一门基于对象的语言,而非面向对象的语言。 ...

    javascript中如何实现封装,继承和多态,并有详细的示例.ppt

    JavaScript的OOP机制主要涉及封装、继承和多态。以下是对这些概念的详细解释: **封装**: 封装是将数据和操作数据的方法捆绑在一起的过程,以保护数据不被外部直接访问。在JavaScript中,我们通常使用构造函数来...

    javascript 原生态js类继承实现的方式

    我们还知道,面向对象编程有三个重要的概念 - 封装、继承和多态。 但是在JavaScript的世界中,所有的这一切特性似乎都不存在。 因为JavaScript本身不是面向对象的语言,而是基于对象的语言。

    面向对象第一次作业

    根据给定文件的信息,我们可以提炼出关于面向对象编程在Java、Python和JavaScript三种语言中的关键知识点,主要包括面向对象的基本概念、各个语言中的封装、继承、多态以及抽象类和接口等概念的应用。下面是对这些...

    js-Prototype.rar

    JavaScript中的原型(Prototype...这些HTML文件可能详细解释了JavaScript的原型、封装性、多态、继承和私有属性等概念,通过阅读和学习这些文件,开发者可以深入理解JavaScript的面向对象编程特性,并提升其编程能力。

    js-shell-0.2.zip

    "js-shell-0.2" 可能是为了解决这个问题,通过提供一种壳(Shell)来封装JavaScript,增强其代码组织能力,使开发者能够享受到类似Java的编译检查和类型安全。 JavaScript Shell可能包含了以下功能: 1. 类和对象...

    JavaScript面向对象三个基本特征实例详解【封装、继承与多态】

    JavaScript是一种基于原型的面向对象语言,它支持封装、继承和多态这三种面向对象的基本特征。下面我们将分别探讨这三个概念,结合实例来深入理解它们在JavaScript中的应用。 **封装(Encapsulation)** 封装是...

    国内外javascript经典封装

    通过学习和运用这些经典的JavaScript封装技术,开发者不仅能提升代码质量,还能跟上技术发展趋势,确保项目在未来的可扩展性和兼容性。同时,理解并熟练掌握封装原则,也是成为一名优秀JavaScript开发者的重要一步。

    JavaScript 面向对象.pdf

    JavaScript 面向对象编程 JavaScript 面向对象编程是指使用 JavaScript 语言来实现面向对象编程的...通过使用类和对象,我们可以模拟现实世界中的对象,并使用继承、多态和封装等概念来实现更好的代码重用和可维护性。

    33-js-concepts-master.zip

    面向对象编程在JS中也占据重要地位,包括类、构造函数、原型链、继承、封装和多态。ES6引入的class语法糖使得JS的面向对象编程更加直观。 异步编程是JS的一大特色,事件循环和回调函数是基础,Promise用于解决回调...

    The Principles of Object Oriented.JavaScript

    面向对象编程主要基于四个核心概念:封装、继承、多态和抽象。 - **封装**:将数据和与数据相关的操作封装在一个独立的对象内部,从而隐藏对象的内部状态和实现细节。 - **继承**:允许一个对象继承另一个对象的属性...

Global site tag (gtag.js) - Google Analytics