I noticed different behavior regarding this
in public inner functions and private inner functions.
(function () {
"use strict";
function MyObject(){
var myThis = this;
var z = function(){
console.log("Item",myThis);
};
var y = function(){
console.log("Item",this);
};
this.x = function(){
console.log("Item",this);
};
this.out = function(){
y();
this.x();
};
}
var myObject = new MyObject();
myObject.out();
}());
The output is
"Item"
[object Object] {
out: function (){
"use strict";
z();
y();
this.x();
},
x: function (){
"use strict";
window.runnerWindow.proxyConsole.log("Item",this);
}
}
"Item"
undefined
"Item"
[object Object] {
out: function (){
"use strict";
z();
y();
this.x();
},
x: function (){
"use strict";
window.runnerWindow.proxyConsole.log("Item",this);
}
}
Why are both this
different?