10th week blog
Posted wdyg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10th week blog相关的知识,希望对你有一定的参考价值。
一:object and constructor comprison
对象字面量运行速度更快,因为它们可以在解析的时候被优化:它们不需要"作用域解析(scope resolution)";因为存在我们创建了一个同名的构造函数Object()的可能,当我们调用Object()的时候,解析器需要顺着作用域链从当前作用域开始查找,如果在当前作用域找到了名为Object()的函数就执行,如果没找到,就继续顺着作用域链往上照,直到找到全局Object()构造函数为止
-
Object()构造函数可以接收参数,通过这个参数可以把对象实例的创建过程委托给另一个内置构造函数,并返回另外一个对象实例,而这往往不是你想要的。所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。
在一个类中只能有一个名为 “constructor” 的特殊方法。 一个类中出现多次构造函数 (
constructor)
方法将会抛出一个SyntaxError
错误。在一个构造方法中可以使用
super
关键字来调用一个父类的构造方法。如果没有显式指定构造方法,则会添加默认的 constructor 方法。
如果不指定一个构造函数(constructor)方法, 则使用一个默认的构造函数(constructor)。
- 实例:
-
class Square extends Polygon { constructor(length) { // 在这里, 它调用了父类的构造函数, 并将 lengths 提供给 Polygon 的"width"和"height" super(length, length); // 注意: 在派生类中, 必须先调用 super() 才能使用 "this"。 // 忽略这个,将会导致一个引用错误。 this.name = ‘Square‘; } get area() { return this.height * this.width; } set area(value) { // 注意:不可使用 this.area = value // 否则会导致循环call setter方法导致爆栈 this._area = value; }
-
二:什么时候用arrange fuction:
2、scope及变量查询
作用域,也就是我们常说的词法作用域,说简单点就是你的程序存放变量、变量值和函数的地方。
块级作用域
如果你接触过块级作用域,那么你应该非常熟悉块级作用域。简单说来就是,花括号{}括起来的代码共享一块作用域,里面的变量都对内或者内部级联的块级作用域可见。
基于函数的作用域
在javascript中,作用域是基于函数来界定的。也就是说属于一个函数内部的代码,函数内部以及内部嵌套的代码都可以访问函数的变量。
无论函数是在哪里调用,也无论函数是如何调用的,其确定的词法作用域永远都是在函数被声明的时候确定下来的。理解这一点非常重要。
以上是关于10th week blog的主要内容,如果未能解决你的问题,请参考以下文章