Wie ändert "use strict" die Regeln für "this" in Javascript?
Ich versuche zu verstehen, welche Regel für "dies" "streng" ist; ändert sich im folgenden Fall.
Nach dem Lesen (http://unschooled.org/2012/03/understanding-javascript-this/) Ich vermute, da die Funktion isStrictModeOn () an nichts "angehängt" ist, bezieht sich dies auf null. Das ist vermutlich eine sinnvollere Alternative zu Javascript, wenn Sie dies einfach an das globale Objekt anhängen. Ist das die richtige Interpretation der Änderung, die "use strict" in diesem Fall vornimmt?
http://www.novogeek.com/post/ECMAScript-5-Strict-mode-support-in-browsers-What-does-mean.aspx
function isStrictMode(){
return !this;
}
//returns false, since 'this' refers to global object and '!this' becomes false
function isStrictModeOn(){
"use strict";
return !this;
}
//returns true, since in strict mode, the keyword 'this' does not refer to global object, unlike traditional JS. So here,'this' is null and '!this' becomes true.