1. ECMAScript 面向对象技术 本节简要介绍了面向对象技术的术语、面向对象语言的要求以及对象的构成。 ECMAScript 对象应用 本节讲解了如何声明和实例化对象,如何引用和废除对象,以及绑定的概念。 ECMAScript 对象类型 本节介绍了 ECMAScript 的三种类型:本地对象、内置对象和宿主对象,并提供了指向相关参考手册的链接。 ECMAScript 对象作用域 本节讲解了 ECMAScript 作用域以及 this 关键字。 E ...

    阅读全文
  2. 在 ECMAScript 中,所有对象并非同等创建的。 一般来说,可以创建并使用的对象有三种:本地对象、内置对象和宿主对象。 本地对象(native object) ECMA-262 把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。简单来说,本地对象就是 ECMA-262 定义的类(引用类型)。它们包括: Object Function Array String Boo ...

    阅读全文
  3. 在 JavaScript 核心语言中,全局对象的预定义属性都是不可枚举的,所有可以用 for/in 循环列出所有隐式或显式声明的全局变量,如下所示: var variables = ""; for (var name in this) { variables += name + "<br />"; } document.write(variables);   或者 var var ...

    阅读全文
  4. JavaScript 实现是由以下 3 个不同部分组成的: JavaScript的核心: 对ECMAScript描述的实现 描述了该语言的语法和基本对象; DOM 描述了处理网页内容的方法和接口; BOM 描述了与浏览器进行交互的方法和接口。 Javascript Engine 关于Javascript引擎可以参考wiki,里面讲述了其历史以及不同浏览器使用的不同的JS引擎    http://en.wikipedia.or ...

    阅读全文
  5. ECMAScript 定义类或对象有很多方法,W3SCHOOL总结了6中方法供学习:  工厂方式 原始的方式 因为对象的属性可以在对象创建后动态定义,所有许多开发者都在 JavaScript 最初引入时编写类似下面的代码: var oCar = new Object; oCar.color = "blue"; oCar.doors = 4; oCar.mpg = 25; oCar.showColor = function() ...

    阅读全文
  6. 继承机制实例 通过使用 ECMAScript,不仅可以创建对象,还可以修改已有对象的行为。 prototype 属性不仅可以定义构造函数的属性和方法,还可以为本地对象添加属性和方法。 创建新方法 通过已有的方法创建新方法 可以用 prototype 属性为任何已有的类定义新方法,就像处理自己的类一样。例如,还记得 Number 类的 toString() 方法吗?如果给它传递参数 16,它将输出十六进制的字符串。如果这个方法的参数是 2,那么它 ...

    阅读全文
  7. JavaScript 高级教程继承机制的实现用 ECMAScript 实现继承机制,您可以从要继承的基类入手。所有开发者定义的类都可作为基类。出于安全原因,本地类和宿主类不能作为基类,这样可以防止公用访问编译过的浏览器级的代码,因为这些代码可以被用于恶意攻击。定基类后,就可以创建它的子类了。是否使用基类完全由你决定。有时,你可能想创建一个不能直接使用的基类,它只是用于给子类提供通用的函数。在这种情况下,基类被看作抽象类。尽管 ECMAScript 并没有像其他语言那样严格地定义抽象类, ...

    阅读全文
  8. 初次看些JS代码时会发现xxFucObject.superclass.constructor.call的使用,咋看以为JS什么时候增加了superclass这个object预定义属性, 可是并没有。constructor, call的使用可以查询   /********************** call() 方法 call() 方法是与经典的对象冒充方法最相似的方法。它的第一个参数用作 this 的对象。其他参数都直接传递给函数自身。例如: ******* ...

    阅读全文
  9. jQuery.extend = jQuery.fn.extend = function() { var src, copyIsArray, copy, name, options, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false; // Handle a deep copy situation if ( typeof target == ...

    阅读全文
  10. 一个简单的测试看 function F(){}; f = new F(); for (prop in f) alert(prop); 结果并没有alert什么属性,控制台上可以看到下面的对象。 F __proto__: F constructor: function F(){} arguments: null caller: null length: 0 name: "F" prototype: ...

    阅读全文