一个简单的javascript类定义例子
涵盖了javascript公有成员定义、私有成员定义、特权方法定义的简单示例
Java代码
<script>
//定义一个javascript类
function JsClass(privateParam/* */,publicParam){//构造函数
var priMember = privateParam; //私有变量
this.pubMember = publicParam; //公共变量
//定义私有方法
function priMethod(){
return "priMethod()";
}
  ......
javascript 类定义4种方法
Java代码
/*
工厂方式--- 创建并返回特定类型的对象的 工厂函数 ( factory function )
*/
function createCar(color,doors,mpg){
var tempCar = new Object;
tempCar.color = color;
tempCar.doors = doors;
tempCar.mpg = mpg;
tempCar.showCar = function(){
alert(this.color + " " + this.doors);
}
return tempCar;
}
/*
构造函数方式--- 构造函数看起来很像工厂函数  ......
详解javascript类继承机制的原理
目前 javascript的实现继承方式并不是通过“extend”关键字来实现的,而是通过constructor function和prototype属性来实现继承。首先我们创建一个animal类
js 代码
var animal = function(){ //这就是constructor function 了
this.name = 'pipi';
this.age = 10;
this.height = 0;
}
//建立一个动物的实例
var a1 = new animal ();
构造函数与其他普通函数区别在于,1.构造函数里有 this关键字,2.调用构造函数是使用的new关键字。通过new运算符调用构造函数animal 后,系统就会返回一个对象,这个对象就相当于
等同这样的方式来产生js对象。
到这里我们知道如何在js中定义一个类了,接下来我们展示如何写一个cat
js 代码
var a1 =& ......
1.可以通过prototype属性,实现继承方法的方式,这种方式就是java语言中继承的变换形式。
// Create the constructor for a Person object
function Person( name ) {
this.name = name;
}
// Add a new method to the Person object
Person.prototype.getName = function() {
return this.name;
};
Person.prototype.setName = function(name) {
this.name = name;
};
// Create a new User object constructor
function User( name, password ) {
// Notice that this does not support graceful overloading/inheritance
// e.g. being able to call the super class constructor
this.name = name;
this.password = password;
};
// The User object inherits all of the Person object's methods
User.prototype = new Person();
2.通过自己写继承函数,实现继承,下面这段代码也很好,值得一看
// A simple helper that allows you to bind new functions to the
// prototype of an object
Fun ......
读取XML文档;
采用递归生成无限级的树形菜单;
能够响应鼠标事件,展开与拆叠子级菜单;
首先是生成一个XML文档,我用的是XML Spy的编辑器;
<?xml version="1.0" encoding="utf-8"?>
<menu>
<menu name="明星名人">
<menu name="华人明星" url="">
<menu name="大陆新秀" url="">
<menu name="周笔畅" url="http://post.baidu.com/f?kw=%D6%DC%B1%CA%B3%A9" target="_blank"/>
<menu name="周笔畅" url="http://post.baidu.com/f?kw=%D6%DC%B1%CA%B3%A9" target="_blank"/>
<menu name="周笔畅" url="ht ......
本篇日志先主要讨论 RegExp 对象的部分方法,RegExp 对象定义了两个用于模式匹配的方法,它们是exec()
和test()
下面我们逐一进行讲解
。呵,和上篇日志一样的介绍,看来套话,果然适用于多个场合。嗯。
exec() 检索字符串中的指定值,返回值是被找到的值,如果没有发现匹配,则返回 null:
主要的RegExp模式匹配方法是exec(),其与上一篇介绍的String对象的match方法相似,只不过它是以字符串为参数的RegExp方法,而不是以RegExp对象为参数的字符串方法。呼,这一句有点像绕口令,没办法,书上的原话,抄过来让大家乐一乐,呵。exec()方法在一个字符串中检索匹配,如果没有找到任何匹配返回null,如果它找到了一个匹配,将返回一个数组。
就像方法match()为非全局检索返回的数组一样。这个数组的元素0包含的是与正则表达式相匹配的字符串,余下的所有元素包含的是与子表达式相匹配的子串,而且属性index包含了匹配发生的字符的位置,属性input引用的是被检索的字符串。
/*
i is 0 http://www.xiaoxiaozi.com/index.php
i is 1 http
i is 2 www.xiaoxiaozi.com
i is 3 index.php
i is index 11
i is input my home is http: ......