黑铁时代
Programing is not only one kind of technology, but also one kind of art.
摘要: DOM,即文档对象模型,它提供了一个针对HMTL或者XML文档进行访问的API。目前主流浏览器都实现了DOM1级别的操作,包括FF,Chrome,Safari,opera1.7以上以及IE6以上。Node 类型 Node类型实现于Node接口,所以节点对象都继承至Node类型。网页中所有节点对象一起组成了一个树形的层次结构,称之为节点树。这些节点之间也存在相互的关系。 Node类型的属性: nodeType:规范一共定义了12中类型,但是常用的是元素类型1,属性类型2,文本类型3,文档类型9; nodeName:元素的标签名; nodeValue:如果存在,就是元素的值,不存在就是n... 阅读全文
posted @ 2012-07-08 22:09 黑铁时代 阅读(289) 评论(0) 推荐(0) 编辑
摘要: location对象主要用于提供导航的信息和导航功能。location对象是window的一个属性,但是你也可以通过document.location来访问,他们是指向同一个对象。location对象提供了很多有用的属性来获取导航的信息:hash:返回URL中散列字符串,即#打头的字符串;host:服务器名和端口号,如www.mydomain.com:80;hostname:只返回服务器名字;port:只返回端口号;href:完整的URL;pathname:请求文件的路径;search:返回查询字符串,即?打头的字符串;protocol:返回通讯协议,通常是http和https;加载页面loc 阅读全文
posted @ 2012-07-08 15:25 黑铁时代 阅读(168) 评论(0) 推荐(0) 编辑
摘要: setTimeout和setInterval 如果想使用JavaScript自定义动画效果,通常我们会使用setTimeout和setInterval,它们都是全局的方法。这两个函数的参数是一样的,第一个是回调函数(JavaScript代码的字符串也行,但是不推荐),第二个是以毫秒为单位的时间间隔。虽然参数一样,但是它们的行为还是有很大不同。 setTimeout( someFun, 1000 )表示在定义之后的一秒钟后会调用someFun这个函数;setInterval( someFun, 1000 )则是在定义之后,每隔一秒钟都会调用someFun。这些都是理想状态下,在实际情况中,定.. 阅读全文
posted @ 2012-07-08 02:17 黑铁时代 阅读(1521) 评论(0) 推荐(0) 编辑
摘要: BOM(Browser Object Model)即浏览器对象模型,它为网页程序提供了访问浏览器的能力。但是它没有明确的规范,所以很多实现方式因浏览器而异。window对象表示浏览器窗口的一个实例,它也是ECMAScript标准中定义的Global对象。我们在全局环境中定义的任何变量和对象,都会是window的属性。框架和窗口<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text 阅读全文
posted @ 2012-07-07 18:42 黑铁时代 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 一 创建“类中”的私有变量function Obj() { var _varible = 1; function increase() { ++ _varible; } function getVarible() { return _varible; } this.method = function() { increase(); alert( getVarible() ); } } var obj1 = new Obj(); obj1.method();var obj2 = new Obj... 阅读全文
posted @ 2012-07-05 22:41 黑铁时代 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 闭包是JavaScript语言最奇怪的特性之一,闭包也经常让我们感到疑惑,但是只要弄清楚闭包产生的原理,我们就可以很好的利用它了。 闭包产生的根本原因就是作用域链。我们应该知道,当某个外部作用域包含一个内部作用域的时候,内部作用域可以通过作用域链访问外部作用域的变量对象。即使外部作用域已经销毁,但只要这个内部作用域还继续被使用,那么它就可以继续访问外部作用域中的变量对象,这个特性就叫闭包了。 在JavaScript只存在两种作用域:全局作用域和函数作用域。因此,产生闭包的通常情况都是在一个函数内部创建了另一个函数。当一个函数被创建的时候,就会自动创建一个内部属性引用相应的作用域链。当这... 阅读全文
posted @ 2012-07-04 23:28 黑铁时代 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 在很多高级语言中,如C#,ActionScript 3.0,都有两种继承方式,类继承和接口继承。但是JavaScript中没有这些概念,JavaScript是通过原型链这种特别的方式实现继承的。什么是原型链我们知道原型是每个构造函数自带的一个属性,原型属性保存着一个指针,指向一个对象被称之为原型对象。每一种构造函数都有自己的一个原型对象,而且每种构造函数的所有对象实例也都有一个内部属性指向这种构造函数的原型对象,即所有的对象实例都会共享这个原型对象。如果我们将一个构造函数A的实例赋值给另一个构造函数B的原型属性,即B.prototype = new A(),然后我们在把B的实例赋值给构造函数C 阅读全文
posted @ 2012-07-04 20:44 黑铁时代 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 在探讨原型模式之前,必须先了解什么是原型。在JavaScript中,每当创建了一个函数的时候,这个函数自身就会有一个prototype的属性,prototype就是我们所说的原型了。函数的这个prototype属性存放的是一个指针,而这个指针指向了一个对象,即我们所说的原型对象了。原型对象有什么用呢?原型对象存放的是所有对象实例共享的属性和方法,换句话说就是,如果我们为某个类型的原型对象添加的属性和方法,可以让所有的这个类型的实例共享。我们先来看个例子: function Person() { } Person.prototype.name = 'Leo'; Person.pr 阅读全文
posted @ 2012-07-01 17:25 黑铁时代 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 上节介绍了工厂模式,这节的构造函数模式就是为了解决工厂模式中无法进行对象识别的缺点。 工厂模式中,我们用new Object()的方式创建了一个Object类型的实例;当我们想创建一个Array类型的实例的时候,我们也可以用new Array()来完成。因此,我们也可以创建自己的构造函数,然后就了创建自己的类型的实例了。下面的例子就是构造函数方式: function Person( name, age ) { this.name = name; this.age = age; this.introduce = function () { alert ( 'H... 阅读全文
posted @ 2012-07-01 01:38 黑铁时代 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 面向对象的语言(像Java,C#)都有一个类的概念,实例化的对象都是某个类的实例。但是ECMAScript没有类的概念,所以JavaScript的面向对象的实现和其他语言都有很大的不同。最简单的创建对象的方法就是Object()构造函数: var person = new Object(); person.name = 'Leo'; person.age = '25'; person.introduce = function() { alert ( 'Hello, my name is '+ this.name ); } person.intro 阅读全文
posted @ 2012-06-30 21:20 黑铁时代 阅读(227) 评论(0) 推荐(0) 编辑