Mootools 1.2教程(18)——Class 类(第一部分)
作者:Fdream 来源:Fdream博客 发布时间:2008-12-19 12:45:00
标签:Mootools,类,教程,javascript
原文地址:30 Days of Mootools 1.2 Tutorials - Day 18 - Classes part I
Class(类)(第一部分)
阅读上一讲:Mootools 1.2教程(17)——手风琴插件
今天我们将讲一下用MooTools来创建和使用类的一些基本知识。
简单地讲,一个类就是一个容器,这个容器包含了一些变量集合和操作这些变量的函数,以便实现特定的功能。在一个内容牵涉较多的项目中,类会显得难以置信的有用。
变量
在前面一系列的课程中,我们已经学习过了Hash对象中键值对(key/value pair)的使用方式,因此,下面的这个例子中创建了一个类,它只包含了一些变量,你看起来可能会觉得非常的熟悉:
参考代码:
// 创建一个名为class_one的类
// 包含两个内部变量
var Class_one = new Class({
variable_one : "I'm First",
variable_two : "I'm Second"
});
类似地,你可以通过类似访问hash中的变量的方式来访问其中的变量,注意一下,在下面的代码中,我们创建了一个我们在上面定义的Class_one类的实例。
参考代码:
var run_demo_one = function(){
// 创建类Class_one的一个实例,名称为demo_1
var demo_1 = new Class_one();
// 显示demo_1中的变量
alert( demo_1.variable_one );
alert( demo_1.variable_two );
方法/函数
方法是指一个指定的类中的函数(通俗地说就是一个类中的函数就叫做方法,换了个叫法而已)。这些方法必须通过这个类的实例来调用,而类本身不能调用它们。你可以像定义一个变量来定义一个方法,不同的是你需要给它指定一个静态的值,给它指定一个匿名函数:
参考代码:
var Class_two = new Class({
variable_one : "I'm First",
variable_two : "I'm Second",
function_one : function(){
alert('First Value : ' + this.variable_one);
},
function_two : function(){
alert('Second Value : ' + this.variable_two);
}
});
注意一下上面例子中的关键字this的使用。由于在上面的方法中操作的变量都是类内部的变量,因此你需要通过使用关键字this来访问这些变量,否则你将只能得到一个undefined值。
参考代码:
// 正确
working_method : function(){
alert('First Value : ' + this.variable_one);
},
// 错误
broken_method : function(){
alert('Second Value : ' + variable_two);
}
调用新创建的类中的方法就像访问那些类的变量一样。
参考代码:
var run_demo_2 = function(){
// 实例化一个类class_two
var demo_2 = new Class_two();
// 调用function_one
demo_2.function_one();
// 调用function_two
demo_2.function_two();
}


猜你喜欢
- 一 简单介绍wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。实现了微信
- 第一种,使用reversed 函数,reversed返回的结果是一个反转的迭代器,我们需要对其进行 list 转换listNode = [1
- 问题:如何经过convTransposed1d输出指定大小的特征?import torchfrom torch import nnimpor
- 这种问题,初学者应该都会遇到,分享给大家做个参考!from urllib.parse import quoteimport string#解
- 本文实例讲述了C#实现按数据库邮件列表发送邮件的方法。分享给大家供大家参考。具体实现方法如下:using System;using Syst
- 分组小括号() 有直接分组和命名分组直接分组: ()分组只显示小括号括起来的内容re.findall(r"(name)+
- 创建NumPy矩阵NumPy对于多维数组的运算,默认情况下并不进行矩阵运算。如果需要对数组进行矩阵运算,则可以调用相应的函数。在NumPy中
- 异常,不应该存在,但是我们有时候会遇到这样的情况,比如我们监控服务器的时候,每一秒去采集一次信息,那么有一秒没有采集到我们想要的信息,但是下
- 一 Cookie因为HTTP协议是没有状态的,但很多情况下是需要一些信息的,比如在用户登陆后、再次访问网站时,没法判断用户是否登陆过。于是就
- 下面给大家介绍js中apply和Math.max()函数的问题,具体内容如下所示:var arr=[1,3,6,3,7,9,2];conso
- 本文实例讲述了Django返回json数据用法。分享给大家供大家参考,具体如下:1、前端。jQuery发送GET请求,并解析json数据。g
- 在python中读取一个文本文件相信大家都比较熟悉了,但如果我们遇到一个二进制文件要读取怎么办呢?我们尝试使用 Python 中的内置 op
- 本文实例讲述了Python wxPython库消息对话框MessageDialog用法。分享给大家供大家参考,具体如下:消息对话框即我们平时
- 前言reinhard算法:Color Transfer between Images,作者Erik Reinhardwelsh算法:Tran
- 今天有朋友问我 Turtle的安装问题,在这里简单说在github上我们可以看到Turtle这个库很久没有更新了,里面还有一些python3
- 以Python 3.x版本为主一、条件语句条件语句基本结构0或null为false,其余则为trueif 判定条件:语句块...可多行els
- (1)使用python生成pdf文档需要的最基本的包是pdfgen。它属于reportlab模块,而reportlab模块并没有默认集成到p
- 对于一个内容页的文章来说,如果这个文章内容过长或是其中有分类(排行),那么进行分页阅读无疑是最好的选择。如果一个文章内容不涉及分类,比如小说
- 目录JS 函数的 call、apply 及 bind 方法一、call() 方法1、call()方法的模拟实现二、apply() 方法1、a
- 普通查询按照所需字段排序db_set.find().sort("field_name ",pymongo.ASCENDI