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

JavaScript精粹读书笔记(5)

第5章  继承
在那些基于类的语言(比如Java)中,继承(inheritance或extends)提供了两个有用的服务。首先,它是代码重用的一种形式。如果一个新的类与一个已存在的类大部分相似,那么你只须具体说明其不同点即可。类继承的另一个好处是它包括了一套类型系统的规范。由于程序员无须编写显式类型转换的代码,他们的工作量将大大减轻,这是一件很好的事情,因为类型转换时会丢失类型系统在安全上的好处。
JavaScript是一门弱类型语言,从不需要类型转换。对象的起源是无关紧要的。对于一个对象来说重要的是它能做什么,而不是它从哪里来。
JavaScript提供了一套更为丰富的代码重用模式。它可以模拟那些基于类的模式,同时它也可以支持其他更具表现力的模式。在JavaScript中可能的继承模式有很多。在本章中,我们将研究几种最为直接的模式。当然还有更多更为复杂的结构,但保持它的简单通常是最好的。
在基于类的语言中,对象 是类实例,并且类可以从另一个类继承。JavaScript是一门基于原型的语言,这意味着对象直接从其他对象继承。
5.1   伪类
当一个函数对象被创建时,Function构造器产生的函数对象会运行类似这样的一些代码:
this.prototype={constructor:this};
新函数对象被赋予一个prototype属性,其值是包含一个constructor属性且属性值为该新函数对象。该prototype对象是存放继承特征的地方。因为JavaScript语言没有提供一种方法去确定哪个函数是打算用来作构造器的,所以每个函数都会得到一个prototype对象。constructor属性没什么用。重要的是prototype对象。
当采用构造器调用模式,即使用new前缀去调用一个函数时,这将修改函数执行的方式。如果new运算符是一个方法而不是一个运算符,它可能会像这样执行:
Function.method(‘new’,function(){
       //创建一个新对象,它继承自构造器函数的原型对象。
       var that=Object.beget(this.prototype);
       //调用构造器函数,绑定this到新对象上。
       var other = this.apply(that,arguments);
       //如果它的返回值不是一个对象,就返回该新对象
       return (typeof other === ‘object’ && other)||that;
});


相关文档:

去掉运行JavaScript时IE产生的警告栏

在您的IE浏览器上运行含有JavaScript代码的页面时都会产生一个警告。这个“警告”确实很烦人,不知情的人看了还以为是病毒什么呢,很容易让人产生误解!
记得网上也有人称其为“IE的小黄条警告”。具体的什么叫法我们今天不用关心,我们关心的是如何去掉这个“警告”。具体方法如下:
点击 ......

正则表达式在php,java,javascript中分别应用

在javascript中用法举例
var rule = /^\d+$/;
if(!rule.test(addform.rmb_price.value)) {
alert('rmb_price must be number');
addform.rmb_price.focus();
return false;
}
在php中用法举例
$aa = "/^\d+$/";
if(preg_match($aa, "111")) {
echo "found";
}
在java中用法举例 ......

javascript 面向对象开发

面向对象已不再是指封装、继承、抽象等设计方法,目前已经涉及到面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)及面向对象的编程实现(OOP,Object Oriented Programming)。本片文章主要讨论的是如何实现Javascript的面向对象设计。
Javascript是脚本语言,是基于对象 ......

javascript+css 实现tab功能

<!---------<html>
    <head>
        <style type="text/css">
.tabheader table {
  border-collapse: collapse; /* for IE */
  border-spacing: 0; /* for N6 */
}
.tabheader table tr td {mar ......

javascript prototype

 
下面都是个人理解以及查找的网上的资料,如有不对的地方请指正
prototype
prototype在这里是原型的意思,不是指那个框架...
每个函数就是一个对象(Function),当函数被解析后会添加一个prototype的对象,然后prototype会添加一个constructor的属性
它指向那个函数的
比如定义一个function test(){}
它会 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号