随笔分类 - 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
阅读全文
类型转换
摘要:[]==![]这个问题我想大家并不陌生。我在这根据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==[]
阅读全文
关于对象的原型链
摘要:画的构造器图从下往上看。如第一个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
阅读全文
关于闭包
摘要:在看下面的内容,先要对执行环境(变量对象,作用域链)等有所了解。可以参考我之前写的执行环境。关于本文的闭包内容,首先推荐几篇资料。1预编译征途书上的资料,粗略的讲了下词法分析和语法分析,http://ajava.org/readbook/js/jszt/17035.html经过编译阶段的准备,JavaScript代码在内存中已经被构建为语法树,然后JavaScript引擎就会根据这个语法树结构边解释边执行了。在解释过程中,JavaScript引擎是严格按着作用域机制来执行的。JavaScript语法采用的是词法作用域,也就是说JavaScript的变量和函数作用域是在定义时决定的,而不是执行时
阅读全文
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
阅读全文
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等,我们暂时不讨论。这些函
阅读全文
浙公网安备 33010602011771号