易截截图软件、单文件、免安装、纯绿色、仅160KB

JavaScript 继承详解4

在本章中,我们将分析Douglas Crockford关于JavaScript继承的一个实现
Crockford是JavaScript开发社区最知名的权威,是JSON
、JSLint
、JSMin
和ADSafe
之父,是《JavaScript: The Good Parts》的作者。
现在是Yahoo的资深JavaScript架构师,参与YUI的设计开发。 这里有一篇文章
详细介绍了Crockford的生平和著作。
当然Crockford也是我等小辈崇拜的对象。
调用方式
首先让我们看下使用Crockford式继承的调用方式:
注意:代码中的method、inherits、uber都是自定义的对象,我们会在后面的代码分析中详解。
// 定义Person类
function Person(name) {
this.name = name;
}
// 定义Person的原型方法
Person.method("getName", function() {
return this.name;
});

// 定义Employee类
function Employee(name, employeeID) {
this.name = name;
this.employeeID = employeeID;
}
// 指定Employee类从Person类继承
Employee.inherits(Person);
// 定义Employee的原型方法
Employee.method("getEmployeeID", function() {
return this.employeeID;
});
Employee.method("getName", function() {
// 注意,可以在子类中调用父类的原型方法
return "Employee name: " + this.uber("getName");
});
// 实例化子类
var zhang = new Employee("ZhangSan", "1234");
console.log(zhang.getName()); // "Employee name: ZhangSan"

这里面有几处不得不提的硬伤:
子类从父类继承的代码必须在子类和父类都定义好之后进行,并且必须在子类原型方法定义之前进行。
虽然子类方法体中可以调用父类的方法,但是子类的构造函数无法调用父类的构造函数。
代码的书写不够优雅,比如原型方法的定义以及调用父类的方法(不直观)。
当然Crockford的实现还支持子类中的方法调用带参数的父类方法,如下例子:
function Person(name) {
this.name = name;
}
Person.method("getName", function(prefix) {
return prefix + this.name;
});
function Employee(name, employeeID) {
this.name = name;
this.employeeID = employeeID


相关文档:

javascript修改IMG标签的SRC实现验证码火狐不正常

javascript修改IMG标签的SRC实现验证码时,IE正常,火狐和google出状况
1.当点击某一按钮的时候,把图片域中的图片改变一下
    <img id="randimg" src="/servlet/CreateValidateNum" width="60" height="20" />
    <span style="cursor:hand" onclick="reflush();return false; ......

javascript中replace正则表达式语法

replace()最简单的算是能力就是简单的字符替换。
  示例代码如下:
<script language="javascript">
var strM = "javascript is a good script language";
//在此我想将字母a替换成字母A
alert(strM.replace("a","A"));
</script>
它只替换了首字母。但如 ......

JavaScript 获取对象的高度和宽度详细说明

scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetL ......

JavaScript中定义类或对象


1,对象的构成
对象有特性构成(attribute),可以是原始值,也可以是引用值。如果特性存放的是函数,它将被看做对象的方法(method),否则该特性被看做属性(property)。
2,定义类或对象
(1)工厂方式
Code
    function createCar(sColor,iDoors) {
    &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号