随笔分类 -  ecma

原型链的一个题目
摘要:winter的一个题目 function Class(){}Class.prototype.__proto__.prop=1;Class.prototype=new Class;alert((new Class).prop);这个题目,请思考一下,对象寻找属性的过程是怎么样的。也不会这么解释,用图说明过程。所以(new Class).prop=>(new Class).__proto__.__proto__.__proto__.prop 阅读全文
posted @ 2011-05-13 15:41 日—月 阅读(162) 评论(0) 推荐(0)
类型转换
摘要:[]==![]这个问题我想大家并不陌生。我在这根据ecma规定来分析下这个运算过程的原理。根据ecma--11.9.11 A==B 运算的顺序如下1.Evaluate A.2.Call GetValue(Result(1)).3.Evaluate B.4.Call GetValue(Result(3)).5.Perform the comparison Result(4) == Result(2). (see 11.9.3).6.Return Result(5).[]==![]=>计算A和B的值,取到A和B的真实值。[]=>[] . ![]=>false. false==[] 阅读全文
posted @ 2011-04-27 17:15 日—月 阅读(207) 评论(0) 推荐(0)
关于对象的原型链
摘要:画的构造器图从下往上看。如第一个new func().constructor=function func(){};func.consctrctor=funtion Function(){};Function.constructor=Function.prototype.constructor=Function画的原型链图从上往下看。如Object.__proto__=Function.prototype;Function.prototype.__proto__=Object.prototype;Object.prototype.__proto__=null;从下面的图我发现,prototype 阅读全文
posted @ 2011-04-15 15:36 日—月 阅读(396) 评论(0) 推荐(0)
关于闭包
摘要:在看下面的内容,先要对执行环境(变量对象,作用域链)等有所了解。可以参考我之前写的执行环境。关于本文的闭包内容,首先推荐几篇资料。1预编译征途书上的资料,粗略的讲了下词法分析和语法分析,http://ajava.org/readbook/js/jszt/17035.html经过编译阶段的准备,JavaScript代码在内存中已经被构建为语法树,然后JavaScript引擎就会根据这个语法树结构边解释边执行了。在解释过程中,JavaScript引擎是严格按着作用域机制来执行的。JavaScript语法采用的是词法作用域,也就是说JavaScript的变量和函数作用域是在定义时决定的,而不是执行时 阅读全文
posted @ 2011-03-30 09:49 日—月 阅读(295) 评论(0) 推荐(0)
ecma262-3执行环境练习
摘要:1 词法作用域function c1(){return d1++}function a1(){var d1=0;return c1();}console.info(a1()) //d1 undefined c1是在a1外部定义的//1 错误,变量对象中没找到ccalert(cc)//2 undefined,变量对象中找到了参数cc,但没赋值var xx=function(cc){alert(cc)}()//3 错误,变量对象把参数o=undefinedvar xx=function(o){alert(o.a)}()//4错误,变量对象把变量声明o=undefinedalert(o.a)var 阅读全文
posted @ 2011-03-19 13:14 日—月 阅读(228) 评论(0) 推荐(0)
ecma262-3执行环境
摘要:最好别看我的译文,我自己都觉得不行。最好看原版英文的。html版本地址 http://bclary.com/2004/11/07/#a-10pdf版本地址 http://www.mozilla.org/js/language/E262-3.pdf翻译10 执行环境当控制器到了可执行代码前时,控制器就进入了一个执行环境。活动的执行环境通常是在栈中的。在栈头部的执行环境就是正在执行的执行环境。10.1定义10.11函数型对象有两种函数型的对象。在源代码中通过 函数声明 或者 动态的 通过函数表达式 和 new Function 的形式语言内建的内部函数,如parseInt等,我们暂时不讨论。这些函 阅读全文
posted @ 2011-03-19 13:11 日—月 阅读(200) 评论(0) 推荐(0)