From 3f28d7b06ec0e4647b9f2be91221f24f55741b61 Mon Sep 17 00:00:00 2001 From: Jing Ma Date: Fri, 24 Nov 2017 16:17:31 +0800 Subject: [PATCH] Updated example and explanation of Symbol.species --- docs/symbol.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/symbol.md b/docs/symbol.md index 11c5384..bfcc163 100644 --- a/docs/symbol.md +++ b/docs/symbol.md @@ -591,11 +591,14 @@ class MyArray extends Array { let a = new MyArray(1,2,3); let mapped = a.map(x => x * x); +a instanceof MyArray // true +a instanceof Array // true + mapped instanceof MyArray // false mapped instanceof Array // true ``` -上面代码中,由于构造函数被替换成了`Array`。所以,`mapped`对象不是`MyArray`的实例,而是`Array`的实例。 +上面代码中,`a`是`MyArray`的实例,所以`a instanceof MyArray`返回`true`。由于构造函数被替换成了`Array`,所以`a`实际上也是`Array`的实例,于是`a instanceof Array`也返回`true`。而`mapped`是`Array.prototype.map`运算的结果,已经是真正的数组,它是`Array`的实例,而不是`MyArray`的实例,于是`mapped instanceof Array`返回`true`,而`mapped instanceof MyArray`返回`false`。 ### Symbol.match