郑州网站seo优化公司,展览公司设计费,百度不收录的网站,调研报告对象中#xff0c;this.x和x的区别
var x 1, y 2;var z function () {var x 2; // 局部变量 xreturn {x: x, // 对象属性 x#xff0c;与局部变量 x 的初始值相同#xff08;2#xff09;y: function (a, b) {this.x a b; // 修改的是对象的属性 x},z: functio… 对象中this.x和x的区别
var x 1, y 2;var z function () {var x 2; // 局部变量 xreturn {x: x, // 对象属性 x与局部变量 x 的初始值相同2y: function (a, b) {this.x a b; // 修改的是对象的属性 x},z: function () {return x; // 返回局部变量 x 的当前值}};
};var a z();
a.y(x, y); // 这里将 a.y(1, 2) 即 this.x 1 2
console.log(a.z(), a.x, x); // 输出2 3 1 闭包this
this 是执行上下文中的一个属性它指向最后一次调用这个方法的对象
let x global; // 全局变量function outer() {let x outer; // 外层函数的局部变量return function inner() {console.log(this.x); // 引用 this.x最后一次调用该方法的对象此时时全局对象};
}const closure outer();
closure(); // 输出 global
闭包
闭包会“记住”它定义时所处的作用域链并优先使用最近的作用域中的变量。
let x global; // 全局变量function outer() {let x outer; // 外层函数的局部变量return function inner() {console.log(x); // 引用了外层函数的 x};
}const closure outer();
closure(); // 输出 outer