易截截图软件、单文件、免安装、纯绿色、仅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);
      
//
如果它的返回值不是一个对象,就返回该新对象


相关文档:

JavaScript 事件


WEB 编程 - DHTML - 事件
onabort
当图片加载被中断时触发的事件
onactivate
当对象成为活性元素时触发的事件
onafterprint
当网页打印结束时触发的事件
onafterupdate
当对象的数据被成功修改之后而触发的事件
onbeforeactivate
当对象将要被设置成活动元素之前触发的事件
onbeforecopy
当网页被拷贝之前而 ......

javascript常用知識

  事件源对象
event.srcElement.tagName
event.srcElement.type
捕获释放
event.srcElement.setCapture(); 
event.srcElement.releaseCapture();  
事件按键
event.keyCode
event.shiftKey
event.altKey
event.ctrlKey
事件返回值
event.returnValue
鼠标位置
event.x
e ......

ECMA 推出 JavaScript 5

ECMA 本周推出了 JavaScript 5(PDF),除了增强基础函数库之外,还引入了严格运行时模式(Strict Runtime Modes)以避免代码中的常见错误。ECMA ECMAScript 4 的努力曾以失败告终,ECMA 甚至没有发布 ECMAScript 4 细则。
过去几年,诸如 Nitro,TraceMonkey 一类的 JavaScript 引擎发展迅猛,JavaScript 成了 Google Wav ......

去除javascript数组中的相同元素

<script type="text/javascript">
function uniqueArr(arr)
{
    arr = arr || [];
    var a = {};
    for (var i=0; i<arr.length; i++)
    {
        var v = arr[i];
    &n ......

javaScript循序渐进(4)


<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
A:link { so-language: zxx }
-->
面向对象基础
JavaScript
是完全面向对象的语言。所以不可能以非面向对象的方法来使用。
对象(
Object

从最基本的层次上说,对象是一系列属性的集合,和其他语言里的散列表结构类似。
例如:两个 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号