Verwendung davon – Fragen dazu in Javascript Wenn eine Funktion als Methode eines Objekts aufgerufen wird, bezieht sich diese auf das übergeordnete Objekt.
淡淡烟草味
淡淡烟草味 2017-06-14 10:54:15
0
4
654

Ich habe die zweite Nutzungsumgebung gesehen, als der Meister dies vorstellte. Der Originaltext ist hier:
http://www.ruanyifeng.com/blo...
Das Objekt hier sollte das sein? Wenn ja, warum ist dies am wenigsten deckungsgleich?

function test(){
    console.log(this.x);
  }
  var o = {};
  o.x = 1;
  o.m = test;
   console.log(o.m());
   console.log(o===this);

Die Ausgaben sind:
1
falsch

淡淡烟草味
淡淡烟草味

Antworte allen(4)
过去多啦不再A梦

全局下this===window

漂亮男人

在全局环境下执行console.log()this当然指向window了;
this指向的是函数当前的执行环境

洪涛

o.m()是隐式绑定this到o对象
全局作用域下this指向全局对象

仅有的幸福

要记住,另外一种调用方式func.call(context, x, m) 上面的两种方式只是语法糖 可以通过“转换代码”的方式如:

function test(){
    console.log(this.x);
  } 

等价于

function test(){
    console.log(this.x);
  }
test.call(undefined)

按理说打印出来的 this 应该就是 undefined 了吧
但是浏览器里有一条规则:

如果你传的 context 就 null 或者 undefined,那么 window 对象就是默认的 context(严格模式下默认 context 是 undefined)
因此上面的this对应的应该是 window。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!