日期:2014-05-16  浏览次数:20424 次

JavaScript学习摘要笔记

JavaScript学习摘要笔记
2011年11月15日
  墨梅竹石
  java技术--向前,向前,再向前。博客记录我的java成长路。 JavaScript面向对象继承 
  对象冒充:构造函数使用this关键字给说有属性和方法赋值。 
  Function ClassA(sColor){ 
  This.color = sColor; 
  This.sayColor = function(){ 
  Alert(this.color); 
  } 
  } 
  Function ClassB(sColor){ 
  This.newMethod = ClassA; 
  This.newMethod(sColor); 
  Delete this.newMethod; 
  This.name = sName; 
  This.sayName = function(){ 
  Alert(this.name); 
  } 
  } 
  为ClassA赋予了newMethod,然后调用该方法,传递它的是ClassB构造函数的参数sColor,最后删除ClassA的引用。
  注意:所有的新属性和方法都必须在删除了新方法的代码行后定义,否则,可能会覆盖超类的相关属性和方法。 
  Dereference 
  Early Binding/late Binding 
  JavaScript对象基础
  对象声明和实例化:对象使用关键字new后跟要实例化的类名字创建的。 
  Var obj = new Object(); 
  Tip:若constructor函数无parameter,括号可不写。
  上面代码可以简写为:Var obj = new Object; 
  对象引用:不能访问对象的物理表示,只能访问对象的引用。每次创建对象,存储在变量中的都是对象的引用,而不是对象本身。
  对象的销毁 
  ECMAScript有无用存储单元收集程序,不必专门销毁对象来释放内存。当没有对象引用时,该对象被废除。 
  每当函数执行完,无用存储单元收集程序都会运行,释放所有局部变量。 
  若把对象的所用引用都设置为null,可以强制性的销毁对象。 
  Tip:旧浏览器(IE/Mac)没有全面的无用存储单元回收程序,对象可能不能被正确销毁。 
  早绑定和晚绑定 
  Binding:把对象的接口与对象实例结合在一起的方法。 
  早绑定:在实例化对象之前定义它的特性和方法,ECMAScirpt不支持早绑定,Java、VB等这样强类型语言支持。 
  晚绑定:编译器或解释程序在运行前,不知道对象的类型。 
  ECMAScript中的说要变量都采用晚绑定方法,这样就允许执行大量的操作,而无任何惩罚。 
  对象类型 
  本地对象  Object Function Array String Boolean Number Date RegExp Error EvalError RangeError ReferenceError SynaxError TypeError URIError Array 对象  提供对创建任何数据类型的数组的支持。 
  arrayObj = new Array() 
  arrayObj = new Array([size]) 
  arrayObj = new Array([element0[, element1[, ...[, elementN]]]]) 
  参数 
  arrayObj:必选项。要赋值为 Array 对象的变量名。 
  size:可选项。可选项数组的大小。由于数组的下标是从零开始,创建的元素的下标将从零到 size -1。 
  element0,...,elementN:可选项。要放到数组中的元素。这将创建具有 n + 1 个元素的长度为 n + 1 的数组。使用该语法时必须有一个以上元素。 
  属性:constructor、length、prototype 
  方法:concat、join、pop、push、reverse、shift、slice、sort、splice、toString、unshift、valueof 
  Date对象 
  内置对象 
  Global对象 
  Math对象 
  宿主对象 
  作用域 
  ECMAScript中只存在一种作用域――公用作用域,所有属性和方法都是公用的 
  对象的创建与定义 
  1、工厂函数方式 
  2、构造函数方式 
  3、原型方式 
  4、构造-原型混搭型方式 
  5、添加新的方法 
  6、重写已有的方法 
  JavaScript DOM基础2011/11/9, 22:17 
  一、节点的层次  Document 最顶层节点 DocumentType DTD引用的对象表现形式 DocumentFragment 可像Document一样保存其他节点 Element 表示起始标签和结束标签的内容 Attr 代表一对特性名和特性值 Text 普通文本 CDataSection 的对象表现形式 Entity 表示在DTD中的一个实体定义 EntityReference 代表一个实体引用 ProcessingInstruction 代表一个PI Comment 代表XML的注释 Notation 代表DTD中定义的记号 二、Node接口定义了对应不同节点类型12个常量  Node接口也定义了一些所有节点类型都包含的特性和方法  nodeName String 节点的名字 nodeValue String 节点的值 nodeType String 节点的类型常量值之一 ownerDocument Document 指向这个节点所有属性的文档 firstChild Node 指向在childNode列表中的第一个节点 lastChild Node 指向在childNode列表中的最后一个节点 childNodes NodeList 所有子节点的列表 previousSibling Node 指向前一个兄弟节点 nextSibling Node 指向后一个兄弟节点 hashChildNodes() Boolean 当childNodes包含一个或多个节点时return true Attrbutes NameNodeMap 包含了代表一个元素的特性的Attr对象 appendChild(Node) Node 将node添加到childNodes的末尾 removeChild(node) Node 从childNodes中删除node replaceChild(old,new) Node 将childNodes中old替换成new insertBefore(new,ref) Node 在childNodes中的ref之前插入new 三、JavaScript中使用DOM 
  1、访问相关的节点 
  Var oHtml = document.documentElement; 
  Var oHead = oHtml.firstChild; 
   var oHead = oHtml.childNodes[0]; 
   var oHead = oHtml.ChildNodes.item[0]; 
  Var oBody= document.body; 
  Var oHtmlLen = oHtml.childNodes.length; 
  2、检