您好,匿名用户

如何理解一下代码中的this 指向

0 投票

题目来源及自己的思路

http://es6.ruanyifeng.com/#do... 介绍中的一段代码

相关代码

function* objectEntries() {
  let propKeys = Object.keys(this);

  for (let propKey of propKeys) {
    yield [propKey, this[propKey]];
  }
}

let jane = { first: 'Jane', last: 'Doe' };

jane[Symbol.iterator] = objectEntries;

for (let [key, value] of jane) {
  console.log(`${key}: ${value}`);
}

你期待的结果是什么?实际看到的错误信息又是什么?

以上代码中,this 最终指向到了jane,如何理解?### 题目描述

用户头像 提问 5月23日 @ Kha'Zix 中士 (1,324 威望)
分享到:

1个回答

0 投票
 
最佳答案

objectEntries函数等同于这样

let jane = { 
  first: 'Jane', 
  last: 'Doe',
  *[Symbol.iterator](){
       let propKeys = Object.keys(this);
       for (let propKey of propKeys) {
          yield [propKey, this[propKey]];
        }
  }
};

for (let [key, value] of jane) {
  console.log(`${key}: ${value}`);
}

for..of对jane进行遍历的时候,调用了jane对象的iterator,所以this指向jane对象

用户头像 回复 5月23日 @ Cho'Gath 中士 (1,292 威望)
选中 5月12日 @Kha'Zix
提一个问题:

相关问题

0 投票
1 回复 12 阅读
0 投票
1 回复 117 阅读
用户头像 提问 2017年 5月5日 @ 河蟹 中士 (1,371 威望)
0 投票
1 回复 5 阅读
用户头像 提问 5月27日 @ Kennen 上士 (1,557 威望)
0 投票
1 回复 13 阅读
用户头像 提问 5月27日 @ 切糕 中士 (1,296 威望)
0 投票
1 回复 82 阅读
用户头像 提问 2017年 3月11日 @ Amumu 上士 (1,535 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

IT技术交流群 - 随意问
欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...