随笔分类 - Javascript
摘要:在Javascript中:原型对象是属于构造函数的,不属于实例;实例只能共享原型对象中的属性和方法(当然也可以有自己的属性和方法,或者覆盖原型中同名的属性和方法);构造器constructor属于原型的,不属于实例;实例之所以能有constructor属性是因为它共享了原型对象的所有成员,包括原型对
阅读全文
摘要:由于在原型中查找成员的过程是一次搜索,所以我们对原型对象所做的任何修改都能立即从实例上反映出来(但不包括对原型对象的重写,下面会介绍到),即使是对原型的修改操作在创建实例之后。如下面的示例所示:function Wede(){}Wede.prototype.name="wede's name"; /
阅读全文
摘要:首先说下this这个对象的由来(属于个人理解):每个函数在定义被ECMAScript解析器解析时,都会创建两个特殊的变量:this和arguments,换句话说,每个函数都有属于自己的this对象,这个this对象是在运行时基于函数的执行环境绑定的,即在全局对象中,this指向的是window对象;
阅读全文
摘要:原型模式最大的问题是由其共享的本性所导致的。我们知道,原型中所有的成员是被很多实例共享的,这种共享对于函数非常合适。对于那些包含基本值的属性倒也说得过去,毕竟可以通过在实例上添加一个同名的属性来隐藏原型中对应的属性;然而,对于包含引用类型值的属性来说,问题就比较突出了。来看下面的代码:functio
阅读全文
摘要:我们知道,创建函数有两种方式:1、函数声明2、函数表达式下面就针对这两种方式说说自己的看法。首先,我们创建示例://声明式function zhao(){}//表达式var wede=function(){};貌似看见过有人使用函数表达式方式创建对象来使用,比如一般情况下是这样写:var obj={
阅读全文
摘要:var myObj = { specialFunction: function () { console.log("specialFunction."); }, anotherSpecialFunction: function () { console.log("anotherSpecialFunc
阅读全文
摘要:记性不好,特此记录。代码一:var Co = (function () { function getTypeOf(o) { return typeof o; } function getPrototypeToString(o) { return Object.prototype.toString.c
阅读全文
摘要:<! 示例代码一 ><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http:/
阅读全文
摘要://本例是为了记录检测对象类型的两种方式,即constructor属性和instanceof操作符。详见《高三》P145 function Person(name, age, job) { this.name = name; this.age = age; this.job = job; this.
阅读全文
摘要://事件概述:(详见高三第十三章P350)//“DOM2级事件”定义了两个方法:addEventListener()和removeEventListener()用于指定和删除事件处理程序的操作;//(支持DOM2级事件处理程序的浏览器有IE9、FireFox、Safari、Chrome、Opera)
阅读全文
摘要://工厂模式:function createPerson(name, age, job) { var o = new Object(); o.name = name; o.age = age; o.job = job; o.say = function () { document.write("He
阅读全文
摘要://ECMAScript中的原型继承//ECMAScript中的继承主要是依靠原型链实现的。(关于原型链的介绍,详见《高三》6.3.1章节 P162)//本文示例主要为了说明SubType.prototype=new SuperType()与SubType.prototype=SuperType.p
阅读全文
摘要:关于js中new关键字的理解,先来看个例子:像这样创建实例时使用new与不使用new有什么区别????function ParasiticPerson(name, age, job) { var o = new Object(); o.name = name; o.age = age; o.job
阅读全文
摘要://组合继承指的是将原型链和借用构造函数(call、apply)的技术组合到一起,从而发挥二者之长的一种继承模式,//其背后的思路就是使用原型链实现对原型属性和方法的继承;//而通过借用构造函数来实现对实例属性的继承。这样,既通过在原型上定义方法实现了函数复用,又能保证每个实例都有它自己的属性。//
阅读全文
摘要://【原型模式】--重写原型对象prototype的影响 2014-12-12//定义构造函数function Person() { }//直接指定构造函数的原型为一个对象(为了简化逐个给原型添加成员的操作),但是这样写带来了两个问题,我们先来看第一个问题:Person.prototype = {
阅读全文
摘要://把构造函数模式与原型模式结合,所有信息都封装在了构造函数中,即在构造函数中初始化原型:function Person(name, age, job) { //实例属性 this.name = name; this.age = age; this.job = job; //原型方法,这里只执行一次
阅读全文
摘要:大体来说,基本类型的值应该用typeof来检测,而对象类型的值则应该用instanceof来检测。 《高三》P509上面的规则只适用于比较,但是如果要检测一个对象是否存在,或者浏览器是否支持这个对象时,用typeof检测比较方便,例如:if(typeof ActiveXObject != "unde
阅读全文
摘要:实现代码复用的方法包括:工厂模式、构造函数模式、原型模式(《高三》6.2章 P144),它们各自的特点归结如下:1、工厂模式虽然使创建对象一定程度上实现了代码复用,但却没有解决对象识别问题,即类型判断。而构造函数模式可以解决这一问题。2、构造函数模式在类型判断上比工厂模式有优势,而且也一定程度上实现
阅读全文
摘要:/**********事件处理程序***********EventUtil.js*浏览器兼容,《高三》13章 P354*2014-12-8********************************/var EventUtil = { addHandler: function (element,
阅读全文
摘要:一、支持DOM2级的方式我们知道,现阶段支持DOM2的主流浏览器有IE9+、Firefox、Opera、Chrome和Safari。1.1、创建XML//实际上,DOM2级在document.implementation中引入了createDocument()方法来创建XML文档。其语法是:var
阅读全文