`
dreamstone
  • 浏览: 288472 次
  • 来自: ...
文章分类
社区版块
存档分类

面向对象(OOP)方法使用 JavaScript

阅读更多

private variables:原始的定义变量的方法 var
private functions:通过 var functionName=function(){}声明

privileged methods: 通过this.methodName=function(){}声明
privileged properties:通过 this.variableName来声明
(有些地方把privileged properties叫做public properties,但我感觉无论是按照
定义写法,还是为了便于理解都叫privileged properties更好些。更便于对比对称记忆)

prototype methods :通过Classname.prototype.methodname=function(){}来声明
(有些地方叫public method,同样和上边一样的理由,这里改叫prototype method)
prototype properties:通过 classname.prototype.propertyName=somevalue来声明

static properties: 通过classname.propertyName=somevalue定义
static method :通过classnamne.methodName来声明

说明:有些地方(例如我看的文档中)把privileged properties和prototype method叫成
public properties 和public method,不知道为什么这样叫。这样命名后造成的问题是
1,privileged method没有对应的privileged properties
2,prototype properties没有对应的prototype method
3,public method和public properties的定义方式又不对称

下边解释一下几种情况:
1,private:定义在类内部,只能被类内部的方法调用,例如privileged(见实例一中的(1)(2))
2,priviledged :定义在类内部,能被任何调用,在调用上有点类似Java中
的非静态public方法(见实例一中的(3))
3,prototype:这个概念不太好理解,在执行上有点像java的clone,只在类初始化的时候
执行一次。每次建立实例的时候不执行。能被继承。
4,static: 有点类似java中的静态。各实例共享,不能被继承
实例一如下:

<script>
        function Pet(name,color)
{
            
//priviledged properties
            this.name=name;
            
this.color=color;
            
//private properties
            var type="animal";
            
//private method
            var run2 = function(){
                run(type);
            }

            var run 
= function(mType){
                alert(color
+" "+name+" is runing("+mType+")");
            }

            
//priviledged method
            this.callRun = function(){
                
/**//*(1)priviledged method can visit private properties and private method*/
                run(type);
            }

        }


        Pet.prototype.callPrivateRun 
=function(pet){
        
/**//*(2)can not call run*/            
            
//pet.run2();
        /**//*(3)can call priviledge method and priviledge properties*/
            pet.callRun();
        }


        function test()
{
            var pet 
= new Pet("pig","black");
            pet.callRun();
            alert(
"prototype");
            pet.callPrivateRun(pet);

        }

        window.onload
=test;
    
</script>
继承与覆写
实例二演示了继承、覆写
另外javascript不支持多态性
<script>
        function Pet()
{
            
//name
            this.name=null;
            
this.getName = function() {return this.name;};
            
this.setName = function(newName) {this.name = newName;};
            
//abstract method
            this.eat = null;
        }

        
/**//*cat inherit from Pet*/
        Cat.prototype 
= new Pet();
        function Cat()
{
            
//implement the abstract method
            this.eat = function(food){
                alert(
"The cat (" + this.name+ ") is eating " + food);
            }

        }

        
/**//*dog inherit from Pet*/
        function Dog()
{
            
//implements the abstract method
            this.eat = function(food){
                alert(
"The dog (" + this.name+ ") is eating " + food);
            }

        }

        Dog.prototype 
= new Pet();
        
/**//*Hound inherit from dog*/
        Hound.prototype 
= new Dog()
        function Hound()
{
            
//override
            this.eat = function(food){
                alert(
"The Hound (" + this.name+ ") is eating " + food);
            }

        }


        function test()
{
            var cat 
= new Cat();
            cat.setName(
"mimi");
            cat.eat(
"fish");
            var dog 
= new Dog();
            dog.setName(
"wangwang");
            dog.eat(
"bone");
            var hound 
= new Hound();
            hound.setName(
"hali");
            hound.eat(
"rabbit");            
        }

        window.onload
=test;
    
</script>
分享到:
评论

相关推荐

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

    面向对象编程(OOP)是一种软件开发方法,它通过将数据和处理这些数据的方法捆绑在一起形成“对象”来组织代码。这种编程方式使得代码更加模块化,易于管理和扩展。OOP的核心概念包括类、对象、继承、封装、多态等。 ...

    Javascript面向对象编程.

    面向对象编程(Object-Oriented Programming,OOP)是编程的一种重要范式,JavaScript也完全支持这一特性,尽管它并非一种传统的静态类型语言。这篇博客文章可能详细讨论了如何在JavaScript中实现面向对象编程。 在...

    Javascript 面向对象的JavaScript进阶

    在探讨面向对象的JavaScript之前,我们首先需要了解面向对象编程(Object-Oriented Programming, OOP)的基本特性:封装性、抽象性、继承性和多态性。 ##### 8.1.1 封装性 **定义:** 封装性是面向对象编程的一个...

    JAVASCRIPT 面向对象编程精要

    面向对象编程(OOP)作为一种重要的编程范式,在JavaScript中也有独特的实现方式。 #### 二、JavaScript的特性概述 JavaScript是一种基于原型的语言,这意味着它不像传统的面向对象语言(如Java或C++)那样拥有类的...

    JavaScript与OOP js面向对象教程.ppt

    JavaScript与OOP js面向对象教程.ppt

    面向对象JavaScript开发

    JavaScript,作为一种广泛应用于Web开发的动态脚本语言,最初被设计为简单的客户端脚本语言,但随着技术的发展,它已经发展出了丰富的面向对象编程(OOP)特性。面向对象JavaScript开发是现代Web开发中不可或缺的一...

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

    尽管JavaScript的基础架构支持面向对象编程(OOP),但在语言层面,对象并非基本数据类型。相反,JavaScript以函数为中心,通过函数来创建和操作对象。这种独特的设计使得JavaScript能够支持多种面向对象编程特性,...

    js 面向对象实例

    面向对象编程(Object-Oriented Programming,简称OOP)是JavaScript中的核心概念,它允许开发者通过对象来组织和管理代码,提高代码的可重用性和可维护性。本实例将深入探讨JavaScript的面向对象特性,并结合HTML5...

    面向对象javascript

    在JavaScript中,我们可以使用函数对象来实现面向对象的编程。函数对象可以作为值赋给变量、作为参数传递给另一个函数、或作为其它函数的返回值。 在JavaScript中,我们可以使用prototype链来实现继承。prototype链...

    JavaScript面向对象(OOP)语法.doc

    JavaScript的面向对象编程(Object-Oriented Programming, OOP)是一种强大的编程范式,它允许开发者模拟现实世界中的实体,并通过对象来表示和操作这些实体。JavaScript作为一种动态类型的脚本语言,完全支持OOP...

    javascript面向对象编程(中文).pdf

    - **JavaScript与OOP**:虽然JavaScript并不是从一开始就设计为面向对象的语言,但它具备了面向对象编程的所有核心特性,例如封装、继承和多态。 - **构造函数与原型链**: - **构造函数**:用于创建对象实例的...

    javascript面向对象编程.pdf

    面向对象的编程(OOP)在JavaScript中并不是新鲜事物。JavaScript被设计成一种彻底的面向对象语言,尽管它的使用和接受过程中发生了发展和变化,吸引了其他如Ruby、Python、Perl等语言的程序员将他们的编程模式带入...

    Javascript oop设计模式 面向对象编程简单实例介绍

    JavaScript中的面向对象编程(OOP)是一种强大的编程范式,它允许我们以更接近现实世界的方式来组织代码。在JavaScript中,我们通常通过构造函数、原型和封装等概念来实现OOP。 首先,让我们看下传统的JavaScript...

    javascript 经典面向对象设计

    标题“JavaScript经典面向对象设计”指出了本书的主要内容是关于如何使用面向对象编程(OOP)原则和技术来编写高质量、可扩展且可重用的JavaScript应用程序及库。描述中提到本书相比其他中文资料更为清晰,深入到...

    JavaScript面向对象编程指南(第2版).rar

    面向对象编程(Object-Oriented Programming,OOP)是JavaScript中的一个重要概念,它允许开发者通过对象来组织代码,提高可读性和可维护性。本指南的第二版深入探讨了JavaScript的面向对象特性,旨在帮助开发者更好...

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

    面向对象编程(Object-Oriented Programming, OOP)是JavaScript中的核心概念,而设计模式则是解决常见编程问题的经验总结,对于提升代码质量和可维护性至关重要。这两本书——"JavaScript 面向对象编程.pdf"和...

    JavaScript面向对象编程指南

    JavaScript是一种广泛应用于Web开发的动态、弱类型的语言,它的面向对象编程能力是其核心特性之一。面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它基于“对象”的概念,允许程序员创建数据...

    第15章 javascript面向对象与原型

    在JavaScript中,面向对象编程(OOP)的概念虽然存在,但是它的实现与传统基于类的语言有所不同。ECMAScript,也就是JavaScript的语言规范,支持两种开发模式:函数式(过程化)和面向对象(OOP)。面向对象编程语言...

    JavaScript面向对象编程指南 pdf

    面向对象编程(Object-Oriented Programming,OOP)是JavaScript中的一个重要概念,它允许开发者以更加模块化、可复用的方式组织代码。下面将详细探讨JavaScript面向对象编程的基本原理、特性以及实际应用。 1. **...

    javascript oop模式讲解

    JavaScript OOP(面向对象编程)模式是编程领域中一种重要的设计思想,它允许开发者通过类和对象来组织和管理代码,提高代码的可重用性和可维护性。在这个讲解中,我们将深入探讨JavaScript中的OOP模式,特别是如何...

Global site tag (gtag.js) - Google Analytics