this指向练习题

自己去分析写解释
// 练习题1 var b = { a: 23, c: 3, d: { a: 78, e: { a: 100, f: function () { console.log(this.a); } } } } var fn = b.d.e.f; fn(); // undefined b.d.e.f(); // 100 // 练习题2 修改$对象里的代码,使得以下代码运行正常 var $ = { fn:function(){ console.log(1); return this; //返回值缺失 }, fn2:function(){ console.log(2); } } $.fn().fn2(); // // 练习题3 var myObject = { foo: "bar", func : function(){ var self = this; console.log(this.foo); //bar console.log(self.foo); //bar (function(){ console.log(this.foo); //undefined console.log(this); //window console.log(self.foo); //bar }()); } }; myObject.func(); // // 练习题4 var x = 3; var y = 4; var obj = { x : 1, y : 6, getX : function(){ var x = 5; return function(){ return this.x; }(); }, getY: function(){ var y = 7; return this.y; } } console.log(obj.getX()); //3 console.log(obj.getY()); //6 // // 练习题5 function a(xx) { this.x = xx; // window.x = 6 return this; } var x = a(5); // x = window var y = a(6); // y = window console.log(x.x); // window.x undefined console.log(y.x); // window.x 6
原文地址:https://www.cnblogs.com/zycs/p/13301037.html