Fork me on GitHub
随笔 - 265  文章 - 0  评论 - 1075  阅读 - 230万
09 2011 档案
原型继承原理
摘要:prototype与[[prototype]]在有面象对象基础的前提下,来看一段代码:01//Animal构造函数02functionAnimal(name){03this.name = name;04}05//Animal原型对象06Animal.prototype = {07id:"Animal",08sleep:function(){09alert("sleep");10}11}1213vardog =newAnimal("旺才");14alert(dog.name);//旺才15alert(dog.id);//Animal16 阅读全文
posted @ 2011-09-06 08:57 【艾伦】 阅读(775) 评论(1) 推荐(2) 编辑
JavaScript中的arguments,callee,caller,call,appy
摘要:<scriptlanguage="JavaScript">/**演示arguments的用法,如何获取实参数和形数数*/functionargTest(a,b,c,d){varnumargs=arguments.length;//获取被传递参数的数值。varexpargs=argTest.length;//获取期望参数的数值。alert("实参数目为:"+numargs)alert("形数数目为:"+expargs)alert(arguments[0])alert(argTest[0])//undefined没有这种用法} 阅读全文
posted @ 2011-09-05 17:15 【艾伦】 阅读(363) 评论(0) 推荐(1) 编辑
匿名函数
摘要:拉姆达(lambda)函数/*ECMA-262 对象定义:无序属性的集合,散列表构造函数始终要已一个大写字母开头,非构造小写开头*/var p = new Object();p.name = "cj";p.say = function(){this.name};//缺点:使用同一个接口创建很对象,大量的垃圾重复代码//工厂模式 问题 没有解决对象识别(怎么知道一个对象的类型)function createP(name,age){ var o = new Object(); o.name =name; o.age = age; o.say =function(){this.n 阅读全文
posted @ 2011-09-05 17:08 【艾伦】 阅读(358) 评论(0) 推荐(0) 编辑
理解Javascript 数据模型
摘要:基本的数据类型原始类型(简单数据类型、基本数据类型)Undefined类型:表示声明了变量但未对其初始化时赋予该变量的值。undefined为Undefined类型下的唯一的一个值。Null类型:用于表示尚未存在的对象。Null类型下也只有一个专用值null。Boolean类型:有两个值true和false,主要用于条件判断,控制执行流程。Number类型:代表数字(即包括32的整数,也包括64位的浮点数)String类型:用于代表字符串。注:关于undefined与null的关系,可以参见《理解Javascript_02_理解undefined和null》一文。对象:一个无序属性的集合,这些 阅读全文
posted @ 2011-09-05 15:34 【艾伦】 阅读(1112) 评论(0) 推荐(0) 编辑
数据类型
摘要:基本的数据类型原始类型(简单数据类型、基本数据类型)Undefined类型:表示声明了变量但未对其初始化时赋予该变量的值。undefined为Undefined类型下的唯一的一个值。Null类型:用于表示尚未存在的对象。Null类型下也只有一个专用值null。Boolean类型:有两个值true和false,主要用于条件判断,控制执行流程。Number类型:代表数字(即包括32的整数,也包括64位的浮点数)String类型:用于代表字符串。注:关于undefined与null的关系,可以参见《理解Javascript_02_理解undefined和null》一文。对象:一个无序属性的集合,这些 阅读全文
posted @ 2011-09-05 15:33 【艾伦】 阅读(365) 评论(0) 推荐(1) 编辑
引用变量优化
摘要:说明:为了文章的系统性,将本博文原来的两节内容放到了单独的一篇中,请见:《理解Javascript_12_执行模型浅析》引用变量优化即然我们已经了解了Javascript中变量的访问规则,那我们就来具体分析一下上面代码中alert(document.body.tagName);这一句的具体执行流程:由此可见,要在Fn2中访问window对象下的document对象的body属性的tagName属性是一个比较漫长的过程(这个问题在IE浏览器中尤为严重)。那么如何优化呢,通过流程图,我们也能发现问题的原因在于引用的级数太多,在《理解Javascript_01_理解内存分配》一文中也说过,通过引用寻 阅读全文
posted @ 2011-09-05 15:11 【艾伦】 阅读(386) 评论(1) 推荐(0) 编辑
执行模型浅析
摘要:大家有没有想过,一段javascript脚本从载入浏览器到显示执行都经过了哪些流程,其执行次序又是如何。本篇博文将引出'javascript执行模型'的概念,并带领大家理解javascript在执行时的处理机制。简单的开始简单的代码:01<scripttype="text/javascript"src="xxx.js"></script>02<scripttype="text/javascript">03var i = 10;04function say(msg){05alert(m 阅读全文
posted @ 2011-09-05 15:10 【艾伦】 阅读(355) 评论(0) 推荐(2) 编辑
伪数组
摘要:这篇文章来回答javascript通用循环遍历方法forEach中最后提到的关于伪数组的问题。什么是伪数组能通过Array.prototype.slice转换为真正的数组的带有length属性的对象。这种对象有很多,比较特别的是arguments对象,还有像调用getElementsByTagName,document.childNodes之类的,它们都返回NodeList对象都属于伪数组。我们可以通过Array.prototype.slice.call(fakeArray)将伪数组转变为真正的Array对象。来看个示例:1varfakeArray01 = {0:'a',1:& 阅读全文
posted @ 2011-09-05 15:06 【艾伦】 阅读(2923) 评论(0) 推荐(0) 编辑
javascript通用循环遍历方法forEach
摘要:循环遍历一个元素是开发中最常见的需求之一,那么让我们来看一个由框架BASE2和Jquery的结合版本吧.01varforEach = (function(){02//数组与伪数组的遍历03var_Array_forEach =function(array, block, context) {04if(array ==null)return;05//对String进行特殊处理06if(typeofarray =='string'){07array = array.split('');08}09vari = 0,length = array.length;10for 阅读全文
posted @ 2011-09-05 15:03 【艾伦】 阅读(4152) 评论(0) 推荐(1) 编辑
getElementsByClassName实现
摘要:先来看一下代码:(支持多个class查询和在某个范围内进行查询)01/*02* 根据元素clsssName得到元素集合03* @param fatherId 父元素的ID,默认为document04* @tagName 子元素的标签名05* @className 用空格分开的className字符串06*/07functiongetElementsByClassName(fatherId,tagName,className){08varnode = fatherId&&document.getElementById(fatherId) || document;09tagName 阅读全文
posted @ 2011-09-05 15:01 【艾伦】 阅读(598) 评论(2) 推荐(0) 编辑
javascript全局观
摘要:今天让我们站在语言的高度来看一下Javascript都有点什么。因为是全局性的俯瞰,所以不针对细节作详细的讲解。先来看一张图吧:解释一下:核心(ECMAScript):定义了脚本语言的所有对象,属性和方法文档对象模型(DOM):HTML和XML应用程序接口浏览器对象模型(BOM):对浏览器窗口进行访问操作现在来具体的讲一个各个成分:关于ECMAScriptECMAScript的工作是定义语法和对象,从最基本的数据类型、条件语句、关键字、保留字到异常处理和对象定义都是它的范畴。在ECMAScript范畴内定义的对象也叫做原生对象。其实上它就是一套定义了语法规则的接口,然后由不同的浏览器对其进行实 阅读全文
posted @ 2011-09-05 14:56 【艾伦】 阅读(445) 评论(0) 推荐(1) 编辑
理解undefined和null
摘要:来自普遍的回答:其实在 ECMAScript 的原始类型中,是有Undefined 和 Null 类型的。 这两种类型都分别对应了属于自己的唯一专用值,即undefined 和 null。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的,通过下列代码可以验证这一结论:alert(undefined == null); //true尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。所 阅读全文
posted @ 2011-09-05 14:53 【艾伦】 阅读(986) 评论(0) 推荐(0) 编辑
理解内存分配
摘要:在正式开始之前,我想先说两句,理解javascript系列博文是通过带领大家分析javascript执行时的内存分配情况,来解释javascript原理,具体会涵盖javascript预加载,闭包原理,面象对象,执行模型,对象模型...,文章的视角很特别,也非常深入,希望大家能接受这种形式,并提供宝贵意见。原始值和引用值在ECMAScript中,变量可以存放两种类型的值,即原始值和引用值。原始值指的就是代表原始数据类型(基本数据类型)的值,即Undefined,Null,Number,String,Boolean类型所表示的值。引用值指的就是复合数据类型的值,即Object,Function. 阅读全文
posted @ 2011-09-05 14:47 【艾伦】 阅读(480) 评论(4) 推荐(6) 编辑
执行环境,作用域
摘要:执行环境,作用域2010-12-10 17:03 by 名刘天下, 84 visits,收藏,编辑在javascript的学习中,执行环境、作用域是2个非常非常重要和基本的概念,理解了这2个概念对于javsacript中很多脚本的运行结果就能明白其中的道理了,比如搞清作用域和执行环境对于闭包的理解至关重要。一、执行环境(exection context,也有称之为执行上下文) 所有 JavaScript 代码都是在一个执行环境中被执行的。执行环境是一个概念,一种机制,用来完成JavaScript运行时在作用域、生存期等方面的处理,它定义了变量或函数是否有权访问其他数据,决定各自行为。 在jav 阅读全文
posted @ 2011-09-05 13:46 【艾伦】 阅读(3793) 评论(3) 推荐(8) 编辑
引用类型
摘要:var c = ['red','bule']; //alert(c.push('yellow')); var colors = new Array; var count = colors.unshift('red','yeelow'); count = colors.unshift("black"); var item = colors.pop(); // alert(item); // alert(colors.length)/*栈 last in first out 队列 first in 阅读全文
posted @ 2011-09-04 21:14 【艾伦】 阅读(429) 评论(1) 推荐(1) 编辑
引用和基本类型
摘要:function set(obj){obj.name = "cj";obj = {};obj.name = "aa" // 如果是按引用传递的话结果会改成这个}var obj = {};set(obj);alert(obj.name);结果是cj,函数的参数是局部变量JavaScript 函数传递参数时,是值传递。虽然您可能不信,因为ECMAScript 变量可能包含两种不同数据类型的值:基本数据类型,和引用数据类型。难道引用数据类型传递的时候难道也是值传递吗?答,没错。当一个变量向另一个变量复制引用类型的值时,会将存储在栈中的值(栈中存放的值是对应堆中 阅读全文
posted @ 2011-09-02 21:27 【艾伦】 阅读(429) 评论(1) 推荐(4) 编辑
谈谈Javascript的this指针
摘要:JavaScript中的this总是让人迷惑,应该是js众所周知的坑之一。个人也觉得js中的this不是一个好的设计,由于this晚绑定的特性,它可以是全局对象,当前对象,或者…有人甚至因为坑大而不用this。JavaScript中的this总是让人迷惑,应该是js众所周知的坑之一。个人也觉得js中的this不是一个好的设计,由于this晚绑定的特性,它可以是全局对象,当前对象,或者…有人甚至因为坑大而不用this。其实如果完全掌握了this的工作原理,自然就不会走进这些坑。来看下以下这些情况中的this分别会指向什么:1.全局代码中的thisalert(this)//window 全局范围内 阅读全文
posted @ 2011-09-02 17:26 【艾伦】 阅读(3281) 评论(1) 推荐(10) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示