![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
你所不知道的javascript
maqinyao5566
这个作者很懒,什么都没留下…
展开
-
javascript作用域
编译:(1)词法分析-----字符串->代码块(词法单元)。即调用有状态的解析规则;(2)语法分析--------数组->抽象语法树AST(由元素逐级嵌套);(3)代码生成----AST->可执行代码 javascript引擎查询变量方法:(1)LHS查询------查询变量容器本身(赋值操作目标)(2)RHS查询-----查询变量值(谁是赋值操作的源头) 异常:(1)无法查询到该变量:RHS原创 2017-10-20 20:30:47 · 187 阅读 · 0 评论 -
词法作用域
词法作用域意味着作用域是由书写代码时函数声明的位置来决定的。 作用域查找会找到第一个匹配的标识符时停止 欺骗词法作用域会导致性能的下降: (1)eval()可以计算表达式,但不要把eval()函数传递的String对象来作为参数。如果试图覆盖eval属性或把eval()方法赋予另一个属性,并通过该属性调用它,则ECMAScript实现允许抛出一个EvalErr原创 2017-10-22 19:04:24 · 186 阅读 · 0 评论 -
创建对象的几种方式
1.工厂模式:以函数来封装特定接口创建对象的细节 function createPerson(name,age,job){ var o=new Object(); o.name=name; o.age=age; o.job=job; o.sayName=function(){ alert(this.name); }; return o; } ...原创 2018-05-19 09:14:12 · 237 阅读 · 0 评论 -
javascript设计模式
1.工厂模式,即函数封装,把对象什么的在函数内定义。(好处低耦合高内聚,重复的代码可以放在父类去编写,子类继承父类所有的成员属性和方法,子类只专注于实现自己的业务逻辑)function factory(name,age){ var obj = {}; obj.name = name; obj.age = age; obj.write = function(){ alert(...原创 2018-05-29 11:24:27 · 162 阅读 · 0 评论