JavaScript基于对象编程

js面向对象特征介绍

javascript是一种面向(基于)对象的动态脚本语言,是一种基于对象(Object)和事件驱动(EventDirven)并具有安全性能的脚本语言。它具有面向对象语言所特有的各种特性,比如封装、继承及多态等。但对于大多数人说,我们只把javascript做为一个函数式语言,只把它用于一些简单的前端数据输入验证以及实现一些简单的页面动态效果等,我们没能完全把握动态语言的各种特性。在很多优秀的Ajax框架中,比如ExtJS、JQuery等,大量使用了javascript的面向对象特性,要使用ext技术,javascript的高级特性,面向对象语言特性是我们必需完全把握的。

明确概念:

  1. javascript是一种基于对象(Object-based)的语言,你遇到的所有东西几乎都是对象。特别说明:基于对象也好,面向对象也好实际上都是以对象的概念来编写程序,从本质上并无区别,所有这两个概念在我(韩顺平)的课程中是一样的。
  2. 因为javascript中没有class(类),所以有人把类也称为原型对象,因为这两个概念从在编程中发挥的作用看都是一个意思,为了统一叫法,我这里就统一叫类。

如下例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
        //传统方法比较麻烦
        var cat1_name = "小白";
        var cat1_age = 3;
        var cat1_color = "白色";

        //...解决方法,把猫的属性集中,创建一种新的数据类型(原型对象/类)
        //用面向对象的方法来解决上面的问题
        //这里就是一个Cat类
        function Cat() {

        }
        //Cat();//如果你这样用,就是一个函数
        var cat1 = new Cat();//类
        //这时cat1就是一个对象(实例)
        cat1.name = "小白";
        cat1.age = 3;
        cat1.color = "白色";
        //从上面的代码我们可以看出
        //1.js中的对象的属性可以动态的添加
        //2.属性没有限制
        window.alert(cat1.name+cat1.age+cat1.color+cat1.hobby);
    </script>
</head>
<body>

</body>
</html>

这里,注意几点:

1、若直接这样写Cat();则就是一个函数调用。

2、js中的对象的属性可以动态的添加。

3、属性没有限制。

js面向(基于)对象

计算机语言的发展是向接近人的思维方式演变的,这是一个大趋势。js引入的面向对象的思想。js不是纯面向对象的,我们可以认为它是基于面向对象的。

汇编语言[面向机器],C语言[面向过程],java语言[面向对象],js[支持面向对象]。

类和对象(实例)的关系:

注意:从猫类到猫对象实例,目前有几种说法:1、创建一个对象实例;2、实例化一个对象;3、对象实例化...以后大家听到这些说法,不要迷糊。

当然,上面的猫也可是鱼、狗、人...js支持面向对象编程。

类(原型对象)和对象(实例)的区别和联系

  1. 类(原型对象)是抽象的、概念的,代表一类事物,比如人、猫..
  2. 对象是具体的,实际,代表一个具体事物
  3. 类(原型对象)是对象实例的模板,对象实例是类的一个个体。

类(原型对象)--如何定义类(原型对象)和对象

  1. 工厂方法--使用new Object创建对象并添加相关属性;
  2. 使用构造函数来定义类(原型对象);(目前我们先讲解)
  3. 使用prototype
  4. 构造函数及原型混合方式
  5. 动态原型方式

类(原型对象)--如何定义类(原型对象)

基本语法:

function 类名/原型对象名(){
}

对象的属性,一般是基本数据类型(数,字符串),也可是另外的对象。比如我们前面创建猫对象的age就是猫对象的属性。

创建对象基本语法:

var 对象名=new 类名();
时间: 2024-10-26 15:41:04

JavaScript基于对象编程的相关文章

JavaScript学习总结(九)——Javascript面向(基于)对象编程

一.澄清概念 1.JS中"基于对象=面向对象" 2.JS中没有类(Class),但是它取了一个新的名字叫"原型对象",因此"类=原型对象" 二.类(原型对象)和对象(实例)的区别与联系 1.类(原型对象)是抽象,是概念的,代表一类事物. 2.对象是具体的,实际的,代表一个具体的事物. 3.类(原型对象)是对象实例的模板,对象实例是类的一个个体. 三.抽象的定义 在定义一个类时,实际上就是把一类事物的共有属性和行为提取出来,形成一个物理模型(模板)

基于对象编程与面向对象编程(表达式计算器3)

基于对象编程与面向对象编程 我们的最终目的是用C++设计一个面向对象的表达式计算器,所以非常有必要弄清楚,什么是基于对象编程和面向对象的编程.而要弄清楚这一点,又要先弄明白什么是值语言,什么是对象语义 值语义:对象的拷贝与原对象无关,拷贝后与原对象脱离关系,互不影响.这种拷贝叫深拷贝.拷贝之后脱离关系,只要在拷贝的时候都为对象分配内存空间就行了.某种些情况下算是一种对资源的浪费 值语义例子 class Test { private: int * pNum_; public: Test(int n

C++学习之路: 线程封装(基于对象编程)

引言: 此次我们重新封装线程, 采用基于对象编程的方式,不用于面向对象编程中重定义虚函数的方式,这里我们用回调函数的方式. Thread.h 1 #ifndef THREAD_H_ 2 #define THREAD_H_ 3 4 #include <boost/noncopyable.hpp> 5 #include <functional> 6 #include <pthread.h> 7 8 class Thread : boost::noncopyable 9 {

《Essential C++》读书笔记 之 基于对象编程风格

<Essential C++>读书笔记 之 基于对象编程风格 2014-07-13 4.1 如何实现一个class 4.2 什么是Constructors(构造函数)和Destructors(析构函数) 4.3 何谓mutable(可变)和const(不变) 4.4 什么是this指针 4.5 Static Class Member(静态的类成员) 4.6 打造一个Iterator Class 4.7 合作关系必须建立在友谊的基础上 4.8 实现一个copy assignment operat

javascript面对对象编程 之继承

上一篇博客中为大家介绍了javascript面向对象编程原则的封装,今天为大家介绍继承,在javascript中没有类的概念,所有不能像c#,java语言那样,直接的用类去继承类.比如现在有比如,现在有一个"动物"对象的构造函数. function Animal(){ this.species = "动物"; } 还有一个"猫"对象的构造函数. function Cat(name,color){ this.name = name; this.co

JS面向(基于)对象编程--构造方法(函数)

构造函数(方法)介绍 什么是构造函数呢?在回答这个问题之前,我们来看一个需求:前面我们在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如果现在我要求,在创建人类的对象时,就直接指定这个对象的年龄和姓名,该怎么做? 构造函数(方法)是一种特殊的方法,它的主要作用是完成对对象实例的初始化.它有几个特点: 构造函数(方法)名和类名相同. 在创建一个对象实例时,系统会自动的调用该类的构造方法完成对新对象的初始化. 构造函数基本用法: function 类名(参数列表){ 属性=参

JS面向(基于)对象编程--三大特征

抽象 在讲解面向对象编程的三大特征前,我们先了解什么叫抽象,在定义一个类时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模板).这种研究问题的方法称为抽象. 封装 什么是封装? 封装就是把抽象出来的属性和对属性的操作封装在一起,属性被保护在内部,程序的其它部分只有通过授权的操作(函数),才能对属性进行操作. 封装--访问控制修饰符 电视机的开关,对音量,颜色,频道的控制是公开的,谁都可以操作,但是对机箱后盖,主机板的操作却不是公开的,一般由专业维修人员来玩.那么在js中如

Javascript常用对象的属性和方法

javascript为我们提供了一些非常有用的常用内部对象和方法.用户不需要用脚本来实现这些功能.这正是基于对象编程的真正目的. 在javascript提供了string(字符串).math(数值计算)和Date(日期)三种对象和其它一些相关的方法.从而为编程人员快速开发强大的脚本程序提供了非常有利的条件. 1.常用内部对象 在javascript中对于对象属性与方法的引用,有两种情况:其一是说该对象是静态对象,即在引用该对象的属性或方法时不需要为它创建实例:而另一种对象则在引用它的对象或方法是

手记面对对象编程

对于面对对象的基础, 什么是面对对象的编程的思想那,就是每一个对象都有他特有的方法,和属性.那编程的思想就是,我不去管你的方法原理,比就如,吹风机,可以吹风,我就拿了吹风,不用去管他怎么能吹出风.只要知道怎么用就行! 对象的方法,知道有什么用,需要的时候拿过来用就好! 创建对象的方法! 对象字面量的创建方法比较常用! 可以看出每一次创建对象我们都需要new 一下,减少new的次数,工厂模式 工厂模式也是有俩个缺点的 每个对象都有一套自己的方法,浪费资源(虽然对于现在的计算机来说不算什么,但我们尽