面向对象语言三大特点:继承,多态,封装,这三点虽然Javascript没有提供天然的语法实现,但是我们都可以通过prototype等技巧来实现,因此这种说法似乎不过分。 在Javascript中,构造对象有三种方式: 1. 首先,我们要明确一个概念,Javascript是一种弱类型的语言,一方面体现在Javascript的变量,返回类型都是没有强类型约束的,另一方面,Javascript可以为对象任意添加属性和方法。根据这个,我们可以写出这样的代码: 代码如下...
hasOwnProperty 方法 返回一个布尔值,指出一个对象是否具有指定名称的属性。 object.hasOwnProperty(proName) 兼容WinIE5.5+, MacIE-, NN6+, Moz+, Safari- 参数 object 必选项。一个对象的实例。 proName 必选项。一个属性名称的字符串值。 说明 如果 object 具有指定名称的属性,那么 hasOwnProperty 方法返回 true;反之则返回 false。此方法无法检查该对象的原型链中是否具有该属性;该属性必须是对象本身的一个成员。 示例 在...
我们先看看这样一段代码: 代码如下: var Person = function () { }; var p = new Person(); 很简单的一段代码,我们来看看这个new究竟做了什么?我们可以把new的过程拆分成以下三步: var p={}; 也就是说,初始化一个对象p。 p.__proto__=Person.prototype; Person.call(p);也就是说构造p,也可以称之为初始化p。 关键在于第二步,我们来证明一下: 代码如下: var Person = function () { }; var p = new Person(); aler...
首先我们继续上文的代码,我们来把这段代码延伸一下: 代码如下: var Person = function (name, age) { this.name = name; this.age = age; this.Introduce = function () { alert("My name is " + this.name + ".I'm " + this.age); }; }; var person1 = new Person("飞林沙", 21); var person2 = new Person("kym", 26); alert(person1.Introduce == person2.Introduce); 结果弹出false。也就是说,这两个对象的方法是不同的...
call和apply方法 call方法可改变上下文this指针,类似的方法还有apply,主要用在js对象各方法互相调用的时候,使当前this实例指针保持一致,或在特殊情况下需要改变this指针。 obj1.method1.call(obj2,argument1,argument2) 如上,call的作用就是把obj1的方法放到obj2上使用,后面的argument1…这些做为参数传入。 举一个具体的例子 代码如下: function add(a, b) { alert(a + b); } function sub(a, b) { alert(a - b); } add.cal...
document对象 下表列出了BOM的document对象的一些通用属性:属 性说 明alinkColor激活的链接的颜色,如定义的*bgColor页面的背景颜色,如定义的*fgColor页面的文本颜色,如定义的*lastModified最后修改页面的日期,是字符串linkColor链接的颜色,如定义的*referrer浏览器历史中后退一个位置的URLtitle<FONT face=宋体>标签中显示的文本</FONT></P></TD></TR> <TR> <TD vAlign=top width=151> <P>URL</P></TD> <TD vAlign=top...
js parsefloat parseint JavaScript提供了3个显式的类型转换函数,分别是eval()、parseInt()和parseFloat()。 eval()函数:将字符串表达式转换成数字值。例如,语句total=eval("432.1*10")的结果是total=4321即将数值4321赋予total变量。 parseInt()函数:把字符串转换成整数。返回是从字符串的第一个字符开始,如果字符不是以整数开头则返回0。parseInt()函数还可以转换十六进制数或十进制数。 例如:parseInt("123xyz") 返回123,...
Dom基础—创建表格 利用js来动态创建表格有两种格式,appendChild()和insertRow、insertCell()。但第一种有可能在IE上有问题,所以推荐使用第二种。 1、insertRow(index):index从0开始 这个函数将新行添加到index的那一行前,比如insertRow(0),是将新行添加到第一行之前。默认的insertRow()函数相当于 insertRow(-1),将新行添加到表的最后。一般我们在使用的时候都是: objTable.insertRow (objTable.rows.length)就是为表格objT...
Dom createElement()、createTextNode()、appendChild()、removeChild()、replaceChild()、insertBefore()、createDocumentFragment() //创建新节点 function CreatNode() { var oP = document.createElement("p"); oP.innerHTML = "Hello World!"; document.body.appendChild(oP); } //删除节点 function RemoveNode() { var oP = document.getElementsByTagName("p"); var len = oP.length; if (len != 0) { oP[len - 1].parent...
RegExp类 RegExp对象的构造函数可以带一个或两个参数 第一个参数是描述需要进行匹配的模式字符串,如果还有第二个参数,这个参数则制定了额外的处理指令。 一、基础 1.1使用RegExp对象 test()方法 测试是否匹配。如果给定字符串(只有一个参数)匹配这个模式,它就返回true,否则返回false 代码如下:var sToMatch = "cat"; var reCat = /cat/; //正则表达式字面量使用Perl风格的语法 alert(reCat.test(sToMatch)); //outs "true" exe...
document.title //设置文档标题等价于HTML的title标签 document.bgColor //设置页面背景色 document.fgColor //设置前景色(文本颜色) document.linkColor //未点击过的链接颜色 document.alinkColor //激活链接(焦点在此链接上)的颜色 document.vlinkColor //已点击过的链接颜色 document.URL //设置URL属性从而在同一窗口打开另一网页 document.fileCreatedDate //文件建立日期,只读属性 document.fileModifiedDate //文件修改日...
1.typeof 操作符.对于Function, String, Number ,Undefined 等几种类型的对象来说,他完全可以胜任,但是为Array时 代码如下: var arr=new Array("1","2","3","4","5"); alert(typeof(arr)); 你会收到一个object 的答案,有点让人失望 . 2.instanceof 操作符,JavaScript中instanceof运算符会返回一个 Boolean 值,指出对象是否是特定类的一个实例。 使用方法:result = object instanceof class,还是刚刚的数组,再来一次,嗯...
事件 事件是DOM(文档对象模型)的一部分。事件流就是事件发生顺序,这是IE和其他浏览器在事件支持上的主要差别。 一、事件流 1、冒泡型事件 IE上的解决方案就是冒泡型事件,它的基本思想是从最特定的目标到最不特定的事件目标(document对象)的顺序触发。 过程:按照DOM的层次结构像水泡一样不断上升至顶端。(从里面的div触发事件再到body,到html最后直到document最顶端)。 2、捕获型事件 可以说跟冒泡是正好相反的,事件从最...
注意大小写一定不能弄错. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 Definition 以DTD或XML模式给出的节点的定义(只读) Doctype 指定文档类型节点(只读) documentElement 返回文档的根元素(可读写) firstChild 返回当前节点的第一个子节点(只读) Implementation 返回XMLDOMImplementation对象 lastChild 返回当前节点最后一个子节点(只读) nextSibling 返回...
代码如下:var array = new Array(["no1","no2"]); array["po"] = "props1"; alert(array[0][0]); alert(array.length); //2 //对于数组来说,array[0]同array["0"]效果是一样的(?不确定,测试时如此) alert(array[0] + "_" + array["1"] + "_" + array.po);//