开发者社区> 问答> 正文

Javascript提供令人困惑的输出

我是Java语言的新手,来自Java背景。

const person = {
  name: "bin",
  walk() {
    console.log(this);
  }
};
person.walk();
const per1 = person;
per1.name = "cin";
per1.walk();

const animal = {
  type: "2",
  m2() {
    console.log("type");
  }
};
const walk1 = person.walk.bind(animal);
walk1();
person.walk();

我无法理解第1行的输出,该输出显示name的值cin。当代码在person.walk()处执行时;名称的值未更改。然后如何将值打印为cin。请帮我理解

{name: "bin", walk: ƒ}name: "cin"walk: ƒ walk()__proto__: Object
{name: "cin", walk: ƒ}name: "cin"walk: ƒ walk()__proto__: Object
{type: "2", m2: ƒ}type: "2"m2: ƒ m2()__proto__: Object
{name: "cin", walk: ƒ}name: "cin"walk: ƒ walk()__proto__: Object

展开
收起
几许相思几点泪 2019-12-22 18:26:42 627 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载