由浅到深了解JavaScript类(4)

作者:泣红亭 来源:无忧脚本 时间:2008-06-16 13:20:00 

构造函数

        一个类在初始化的时候其实也是一个函数的执行过程,这个函数就是构造函数,我们看一下下边的代码:

  function WuYouUser()
        {
                this.Name = "泣红亭"; //默认定义为泣红亭
                alert(this.Name);
        }
        var Wo = new WuYouUser();//可以看到出现一个窗口显示泣红亭三个字

可以看出类的定义不仅仅是定义了它的属性与方法,还同时可以加入一些代码,而这些代码就是该类的构造函数的代码,在实例声明过程中被执行!
        其实说起来,类的属性与类的方法都是在构造函数里执行定义的,看下边的代码

 function WuYouUser()
        {
                this.Name = "泣红亭";
                return;
                this.Sex = "男";
        }
        var Wo = new WuYouUser();
        document.write(Wo.Name); //泣红亭
        document.write(Wo.Sex); //undefined,即未定义

看得出什么?Sex属性是在return;之后的,而WuYouUser类的构造函数遇到return即停止运行,换句话说this.Sex = "男";这一行是没有被执行,即Sex属性根本没有被定义!
       
        构造函数可以有参数,参数值在声明实例的时候被传入:

 function WuYouUser(Name)
        {
                this.Name = Name;
        }
        var Wo = new WuYouUser("泣红亭");
        document.write(Wo.Name); //泣红亭

构造函数不需要返回值,但如果你设置了返回值,可以把它当成一个函数来使用

 function Sum(a, b)
        {
                this.a = a;
                this.b = b;
                return this.a + this.b;
        }
        document.write(Sum(12, 23)); //输出的是12与23的和35
        var Obj = new Sum(12,23);
        document.write(Obj.a) // 12
        document.write(Obj.b) // 23

感觉挺奇妙,对吧?我写这文章写着写着也觉得挺奇妙的,呵呵!

 但强烈建议不要把一个类当成一个函数来使用!如果你需要的是一个函数,请直接写成函数而不要写成类,以免搞混了。

标签:类,javascript,编程
0
投稿

猜你喜欢

  • 微信小程序新手教程之启动页的重要性

    2023-07-02 05:26:00
  • golang中如何保证精度的方法

    2024-04-26 17:23:22
  • 浅谈数据库日期类型字段设计应该如何选择

    2024-01-21 13:55:21
  • tensorflow模型转ncnn的操作方式

    2022-10-29 15:55:19
  • Python 如何求矩阵的逆

    2021-07-22 23:28:43
  • 学习CSS布局心得

    2007-05-11 16:50:00
  • 解决使用OpenCV中的imread()内存报错问题

    2022-06-06 03:14:21
  • Python人脸检测实战之疲劳检测

    2021-02-23 16:31:37
  • 谷歌浏览器Chrome的javascript引擎

    2008-09-04 12:24:00
  • Python 同级目录(兄弟目录)调用方式

    2021-12-07 15:52:12
  • Django自定义分页效果

    2023-12-06 00:09:04
  • Vue ElementUI在el-table中使用el-popover问题

    2024-05-09 15:22:15
  • 利用Python批量导出mysql数据库表结构的操作实例

    2024-01-21 00:41:58
  • javascript读取xml

    2024-04-23 09:30:13
  • mysql数据库删除重复数据只保留一条方法实例

    2024-01-28 06:17:49
  • python实现感知器算法(批处理)

    2022-09-06 18:02:25
  • tkinter动态显示时间的两种实现方法

    2021-05-24 23:40:35
  • Python保姆式手把手带你掌握异常的捕获和处理

    2022-04-30 14:10:18
  • Python 安装setuptools和pip工具操作方法(必看)

    2023-11-06 11:46:07
  • Pandas统计计数value_counts()的使用

    2023-11-24 10:28:46
  • asp之家 网络编程 m.aspxhome.com