由浅到深了解JavaScript类(6)

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

类作为一个对象时的属性与方法(不知道如何简洁地表达,因此用了这么长的题目)

不知道在这里谈这个话题是否有点混人耳目,但又觉得不谈这篇文章就不算完整,因为文章目的就是要让人搞清楚类的方方面面。

看了这一小节的题目,或许你会觉得奇怪,类就是类,怎么会“作为一个对象”呢?在JavaScript里,一切都是对象,包括类!对象可以有属性,可以有方法,类也同样可以有,但这个非常容易跟前边说到的静态属性与静态方法搞混了,因此要仔细看清楚两者的分别!
       
        定义一个类:

  function WuYouUser()
        {
                this.Name = "泣红亭";
        }

定义类作为一个对象时的属性:

 WuYouUser.Url = "http://www.51js.com"; //静态属性的定义是:WuYouUser.prototype.Url = "http://www.51js.com";
        var Wo = new WuYouUser();
        document.write(WuYouUser.Url); //http://www.51js.com
        document.write(Wo.Url); //undefined,即未定义!注意这里的未定义

从这里可以看出Url这个属性是WuYouUser自个所有,改变了它与其它类以及它的子类完全无关!
       
        引用类的属性只有一个办法,就是类名.属性名,改变它也一样。
       
        定义类作为一个对象时的方法

WuYouUser.ChangeUrl = function()
        {
                this.Url = "http://51js.com";
        }

你或许会觉得奇怪,这里的this是什么?因为ChangeUrl这个方法是属于对象WuYouUser的,因此this指的就是WuYouUser本身!
       
        可以运行下边的代码试试:

document.write(WuYouUser.Url); // http://www.51js.com
        WuYouUser.ChangeUrl();
        document.write(WuYouUser.Url); // http://51js.com

 明显ChangeUrl直接修改了WuYouUser.Url的值,因此后边才能输出http://51js.com
        
        如果你这一节看不明白,也不要着急,编程嘛,许多东东都只能意会不能言传,而且我又没口才,说不清楚,只要以后多写写代码,多用用类自然而然会体会到这一些,还有可以去看看JSVM的代码,里边几乎每个类都有用到类作为一个对象时的属性与方法。

后言

首先感谢你能够有耐心看到这里,我也没想到写了这么多才能够写得像样一点,请别介意。

不管是哪种语言,只要是支持类的,类都在这种语言中占了非常重要的地位,但不是谁都能够掌握它,为了让无忧还没学过类以及对类这个东东还搞不清楚的网友能够清楚一点了解类的概念以及用法,也为了对无忧做点贡献,我写了这篇文章,希望大家能够喜欢。

css中的类和伪类

ASP怎么谈到应用到类的?

ASP中类的详细介绍(class Property Get、Property Let)

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

猜你喜欢

  • smarty模板引擎从配置文件中获取数据的方法

    2024-05-13 09:23:02
  • 浅谈pandas关于查看库或依赖库版本的API原理

    2023-10-14 04:54:13
  • 解决Python 遍历字典时删除元素报异常的问题

    2023-11-17 04:06:47
  • Laravel框架实现利用监听器进行sql语句记录功能

    2024-05-13 09:53:49
  • 关于MySQL的sql_mode合理设置详解

    2024-01-22 20:44:14
  • Python清空文件并替换内容的实例

    2023-03-22 04:09:43
  • 为什么我们需要在SQL Server里更新锁

    2024-01-16 01:37:39
  • golang开发go包依赖管理godep使用教程

    2023-10-16 04:09:31
  • Python实现读取txt文件并转换为excel的方法示例

    2023-07-25 15:20:16
  • django ajax json的实例代码

    2023-01-15 00:56:18
  • php文章内容分页并生成相应的htm静态页面代码

    2023-07-23 23:48:20
  • Dockerfile构建一个Python Flask 镜像

    2021-11-12 10:04:01
  • 微信小程序实现点击导航标签滚动定位到对应位置

    2024-05-10 13:59:17
  • Python实现多线程抓取妹子图

    2022-10-02 15:39:25
  • Python实现的txt文件去重功能示例

    2021-12-22 23:42:49
  • Python numpy.zero() 初始化矩阵实例

    2021-04-06 01:52:46
  • python使用pygame实现笑脸乒乓球弹珠球游戏

    2021-07-26 09:49:47
  • Django URL传递参数的方法总结

    2023-02-18 13:08:33
  • Python使用captcha库制作带参数输入验证码案例

    2022-01-25 20:26:03
  • 分析MySQL抛出异常的几种常见解决方式

    2024-01-16 14:00:59
  • asp之家 网络编程 m.aspxhome.com