• javascript王者归来类和对象


    我们对JavaScript对象已经并不陌生,下面的例子展示了三种构造对象的方法:

           例: 21.1 对象的三种基本构造法

           //第一种构造法:new Object

    var a = new Object();

           a.x = 1, a.y = 2;

           //第二种构造法:对象直接量

           var b = {x : 1, y : 2};

           //第三种构造法:定义类型

           function Point(x, y)

           {

                  this.x = x;

                  this.y = y;

           }

           var p = new Point(1,2);

           其中,第一种方式是通过实例化一个Obejct来生成对象,第二种方式是通过对象常量,而第三种方式比较特殊,我们先构造了一个function,这个 function代表了一“类”特殊的对象,这类对象描述二维平面上的点,new Point(1,2)表示二维平面上坐标为(1,2)的点,要得到二维平面上坐标为(3,4)的点则可以用new Point(3,4)。

           现在我们比较一下这三种方法的差别,第一种方法是通过构造基本对象直接添加属性的方法来实现的。我们说JavaScript是一种弱类型的语言,一方面体 现在JavaScript的变量、参数和返回值可以是任意类型,另一方面也体现在,JavaScript可以对对象任意添加属性和方法,这样无形中就淡化 了“类型”的概念。例如:

           var a1 = new Object();

           var a2 = new Object();

           a1.x = 1, a1.y = 2;

           a2.x = 3, a2.y = 4, a2.z = 5;

           你既没有办法说明a1、a2是同一种类型,也没有办法说明它们是不同的类型,而在C++和Java中,变量的类型是很明确的,在声明时就已经确定了它们的类型和存储空间。

           第二种方法和第一种方法大同小异,实际上你可以将它看成是第一种方法的一种快捷表示法。

           比较有趣的是第三种方法:

           function Point(x,y)

           {

                  this.x = x;

                  this.y = y;

           }

    var p1 = new Point(1,2);

    var p2 = new Point(3,4);

    你现在知道了p1和p2是同一种类型,它们都是Point的实例。而对于p1和p2来说,Point是它们的“类”,p1、p2和Point之间的关系是创建与被创建的关系,这种关系是面向对象中最重要的一种关系,它是“泛化”关系的一个特例。

    通常我们在讨论面向对象时,构造对象时采用的是上面第三种方法,因为“创建”是面向对象中不可缺少的一种“泛化”关系。

  • 相关阅读:
    (转)iPhone开发经典语录集锦
    在iPone环境下要保存数据
    DevExpress自定义控件 ComboBoxEdit ,RepositoryItemComboBox,实现按拼音字母检索
    常用IPHONE 编程 基础代码
    使用Locating 系统查询手机号码归属地
    JUnit4使用 实例+基础介绍
    5分钟快速了解JSON,实例项目动手做
    eclipse常用快捷键
    Ubuntu12.04下JDK、Eclipse的安装,在linux终端中用命令启动eclipse
    Jackson 框架,轻易转换JSON
  • 原文地址:https://www.cnblogs.com/xinzhuangzi/p/4100589.html
Copyright © 2020-2023  润新知