`
249009188
  • 浏览: 47643 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Javascript 面向对象(转)

阅读更多
神马是对象??
客观世界中,万物皆为对象;
对象就是一MM,她有她独特的性格以及行为。所以对象=属性+行为。

var Person = {  
    age: 0,  
    name: 'MM',  
    say: function(){  
        alert(this.name + ': 你妈喊你吃饭!');  
    }  
}; 


神马是面向对象???
吃这行饭的人都知道,面向对象它是一种思维方式,而不是一种工具。到目前为止不管是多NB的人也没有给出一个确切的定义,因为它本来就没有一个标准,得靠大家在工作中去体会。
个人认为面向对象就是先使用抽取事物的共性,分离其特性的手法,然后再使用封装、继承、多态等设计方法整合各模块,以达到客户要求,就是面向对象。
js虽然不是面向对象的语言,但他依然可以使用面向对象的思想来编程。
命名空间
在开发的后期,命名空间是必不可少的,它可以解决几乎所有的命冲突。
在function 未使用var声明的变量为全局变量,全局变量为window对象下的属性,一般情况下,尽量不要使用全局变量,全局变量是魔鬼,它随时会让你奔溃。
this关键字永远都指向函数的所有者
var Space = function(){  
    this.i=10;//Space 的i  
    i = 300;//window 的i  
    this.fn = function(){  
        var i=20;//fn函数的i  
    }  
};  
var space = new Space();  
alert('space I: ' + space.i);  
alert('window I: ' + window.i);  



是面向对象的基本要素,它是具有相同属性和服务的一组对象的组合,是对事物抽象出来的结果。
一般来说,一个类包含有属性,方法,如下
var Person = function(){  
    this.firstName = '';        //属性  
    this.lastName = '';     //属性  
    this.address = '';      //属性  
    this.birthDate = '';        //属性  
    this.age = 0;           //属性  
    this.phone = '';        //属性  
    this.say = function(){      //方法  
        alert(this.firstName + ': 你妈喊你吃饭!');  
    };  
};  


类的继承:
如果B类继承A类,那么B类拥有A类的属性以及方法,而且还可以扩展自己的属性和方法。
下面新建一个User类,它继承Person类。
var User = function(){  
    this.money = 100;       //扩展User属性  
    this.buy = function()       //扩展User方法  
    {  
        alert(this.firstName + ': 购买一条老底,共' + this.money + '元。' );    
    };  
};  
User.prototype = new Person();      //原行继承方式Person对象做为User的原型。  
  
var user = new User();  
user.firstName = 'Lang';  
user.buy();  


类的多态
多态是子类再继承父类的时候,重新实现父类的某个方法,重载的时候,方法名必须相同,参数可不同。
下面还是以User类为例,重载父类的say()方法。

var User = function(){  
    this.money = 100;       //扩展User属性  
    this.buy = function()   //扩展User方法  
    {  
        alert(this.firstName + ': 购买一条老底,共' + this.money + '元。' );    
    };  
    this.say = function(str)//重载父类的say方法  
    {  
        alert(this.firstName + ': 这老底太贵了。 哥穿不起!' + str);  
    }  
};  
User.prototype = new Person();  //原行继承方式Person对象做为User的原型。  
  
var user = new User();  
user.firstName = 'Lang';  
user.buy();  
user.say('不穿算了!');  


那么在重载父类的方法时,如何实现像Java 跟AS3.0一样的super()方法呢?
var User = function(){  
    this.money = 100;       //扩展User属性  
    this.buy = function()   //扩展User方法  
    {  
        alert(this.firstName + ': 购买一条老底,共' + this.money + '元。' );    
    };  
    this.super = this.say;//将父类的say()方法赋值给super属性;  
    this.say = function(str)//重载父类的say方法  
    {  
        this.super();//在这里调用上面刚刚赋值的super()方法,这里调用就像调用父类的say()方法一样。很过瘾哦!  
        alert(this.firstName + ': 这老底太贵了。 哥穿不起!' + str);  
    }  
};  
User.prototype = new Person();  //原行继承方式Person对象做为User的原型。  
  
var user = new User();  
user.firstName = 'Lang';  
user.buy();  
user.say('不穿算了!');//这次,这里将会有两个输出  
分享到:
评论

相关推荐

    Javascript面向对象编程.

    在提供的资源中,《代码之美》PDF文件可能包含了关于编程实践和代码风格的指导,而《Javascript面向对象编程》PPT可能更具体地阐述了JavaScript OOP的细节和示例。学习这些材料将有助于深入理解JavaScript的面向对象...

    JavaScript面向对象编程指南.pdf

    JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在... 《JavaScript面向对象编程指南》着重介绍JavaScript在面向对象方面的特性,展示如何构建强健的、可维护的、功能强大的应用程序及程序库

    JavaScript面向对象编程指南

    《JavaScript面向对象编程指南》内容包括:JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码...

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

    ### 面向对象JavaScript精要 #### 一、书籍概览 本书《面向对象JavaScript精要》由Nicholas C. Zakas编写,是面向对象编程领域中的权威指南之一,尤其针对JavaScript这门语言。作者深入浅出地介绍了面向对象编程的...

    JAVASCRIPT 面向对象编程精要

    ### JavaScript面向对象编程精要 #### 一、引言 JavaScript是一种灵活且强大的脚本语言,它虽然起源于一种简单的浏览器脚本语言,但随着时间的发展,JavaScript已经成为了一种功能全面的编程语言,尤其是在Web开发...

    Javascript 面向对象的JavaScript进阶

    ### JavaScript面向对象进阶知识点详解 #### 8.1 面向对象编程的基本特性 在探讨面向对象的JavaScript之前,我们首先需要了解面向对象编程(Object-Oriented Programming, OOP)的基本特性:封装性、抽象性、继承...

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

    JavaScript是一种广泛...通过深入学习这本《JavaScript面向对象编程指南(第2版)》,开发者不仅能掌握JavaScript的面向对象编程基础,还能了解到实际项目中如何有效地运用这些知识,提升编程技巧和解决问题的能力。

    javascript面向对象编程.pdf

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

    JavaScript面向对象编程.pdf

    JavaScript面向对象编程.pdf

    JavaScript面向对象编程指南完整版

    JavaScript面向对象编程指南是完整的扫描版...

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

    ### JavaScript面向对象精要 #### 一、概述 《JavaScript面向对象精要》是一本深入讲解JavaScript面向对象编程原理的专业书籍。本书由知名的前端开发者Nicholas C. Zakas撰写,全面介绍了JavaScript作为一种动态...

    JavaScript面向对象编程指南 pdf

    下面将详细探讨JavaScript面向对象编程的基本原理、特性以及实际应用。 1. **类与对象** - 在JavaScript中,对象是键值对的集合,可以通过字面量语法或构造函数创建。例如: ```javascript const person = { ...

    javascript面向对象编程指南 2nd

    javascript面向对象编程指南 2nd英文版,英文名:Object-Oriented JavaScript。 What you will learn from this book The basics of object-oriented programming, and how to apply it in the JavaScript ...

    Javascript面向对象编程

    ### JavaScript面向对象编程详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发领域占据着举足轻重的地位。尽管JavaScript本质上是一种基于原型的语言,但它也支持面向对象编程的一些特性,使得...

Global site tag (gtag.js) - Google Analytics