diff --git a/docs/generator.md b/docs/generator.md index 89127cf..4e5a0a1 100644 --- a/docs/generator.md +++ b/docs/generator.md @@ -1233,7 +1233,7 @@ var clock = function* () { Generator 函数是 ES6 对协程的实现,但属于不完全实现。Generator 函数被称为“半协程”(semi-coroutine),意思是只有 Generator 函数的调用者,才能将程序的执行权还给 Generator 函数。如果是完全执行的协程,任何函数都可以让暂停的协程继续执行。 -如果将 Generator 函数当作协程,完全可以将多个需要互相协作的任务写成 Generator 函数,它们之间使用`yield`表示式交换控制权。 +如果将 Generator 函数当作协程,完全可以将多个需要互相协作的任务写成 Generator 函数,它们之间使用`yield`表达式交换控制权。 ### Generator 与上下文 diff --git a/docs/proxy.md b/docs/proxy.md index c7dfa8c..51f02d4 100644 --- a/docs/proxy.md +++ b/docs/proxy.md @@ -595,10 +595,9 @@ var handler = { `construct`方法可以接受两个参数。 -- `target`: 目标对象 -- `args`:构建函数的参数对象 - -下面是一个例子。 +- `target`:目标对象 +- `args`:构造函数的参数对象 +- `newTarget`:创造实例对象时,`new`命令作用的构造函数(下面例子的`p`) ```javascript var p = new Proxy(function () {}, { @@ -664,11 +663,10 @@ var handler = { }; var target = {}; var proxy = new Proxy(target, handler); -proxy.foo = 'bar' -// TypeError: proxy defineProperty handler returned false for property '"foo"' +proxy.foo = 'bar' // 不会生效 ``` -上面代码中,`defineProperty`方法返回`false`,导致添加新属性会抛出错误。 +上面代码中,`defineProperty`方法返回`false`,导致添加新属性总是无效。 注意,如果目标对象不可扩展(extensible),则`defineProperty`不能增加目标对象上不存在的属性,否则会报错。另外,如果目标对象的某个属性不可写(writable)或不可配置(configurable),则`defineProperty`方法不得改变这两个设置。 diff --git a/docs/regex.md b/docs/regex.md index 4ee07ed..71390bf 100644 --- a/docs/regex.md +++ b/docs/regex.md @@ -132,6 +132,20 @@ codePointLength(s) // 2 上面代码中,不加`u`修饰符,就无法识别非规范的`K`字符。 +## RegExp.prototype.unicode 属性 + +正则实例对象新增`unicode`属性,表示是否设置了`u`修饰符。 + +```javascript +const r1 = /hello/; +const r2 = /hello/u; + +r1.unicode // false +r2.unicode // true +``` + +上面代码中,正则表达式是否设置了`u`修饰符,可以从`unicode`属性看出来。 + ## y 修饰符 除了`u`修饰符,ES6 还为正则表达式添加了`y`修饰符,叫做“粘连”(sticky)修饰符。 @@ -264,16 +278,16 @@ tokenize(TOKEN_G, '3x + 4') 上面代码中,`g`修饰符会忽略非法字符,而`y`修饰符不会,这样就很容易发现错误。 -## sticky 属性 +## RegExp.prototype.sticky 属性 -与`y`修饰符相匹配,ES6 的正则对象多了`sticky`属性,表示是否设置了`y`修饰符。 +与`y`修饰符相匹配,ES6 的正则实例对象多了`sticky`属性,表示是否设置了`y`修饰符。 ```javascript var r = /hello\d/y; r.sticky // true ``` -## flags 属性 +## RegExp.prototype.flags 属性 ES6 为正则表达式新增了`flags`属性,会返回正则表达式的修饰符。