Javascript:对象变量“this.var”的必要性
在某些编程语言(如 C)中,使用“this”声明对象变量当变量在类的范围内时,“->变量”通常是可选的。然而,在 Javascript 中,对对象中的每个变量使用“this.var”至关重要。
为什么需要“this.var”
Javascript 采用独特的原型继承模型而不是基于类的系统。使用“new”关键字创建的对象从其原型对象继承属性和方法。
在对象构造函数中定义方法时,“this”关键字引用正在创建的对象。不使用“this”分配属性会在方法内创建局部变量,这些变量在函数外部无法访问。
示例:不使用“this.var”
function Foo() { bar = 0; getBar = function() { return bar; } } const foo = new Foo(); console.log(foo.getBar()); // ReferenceError: bar is not defined
示例:与"this.var"
function Foo() { this.bar = 0; this.getBar = function() { return this.bar; } } const foo = new Foo(); console.log(foo.getBar()); // 0
替代方法:闭包
为了在对象内创建私有变量,Javascript 开发人员经常采用闭包方法。通过在构造函数内定义局部变量并返回访问这些变量的特权方法,可以在公开公共方法的同时保留私有属性。
示例:使用闭包
function Foo() { let bar = "foo"; this.getBar = function() { return bar; }; } const foo = new Foo(); console.log(foo.getBar()); // "foo"
结论
而使用“this.var”可能看起来很冗长,但在 Javascript 中,它对于确保对象变量在方法内可访问并保持局部变量和对象级变量之间的区别至关重要。或者,使用闭包提供了一种在对象内创建私有变量的方法,从而增强了封装性和数据安全性。
以上是为什么 JavaScript 中的对象变量需要 `this.var`?的详细内容。更多信息请关注PHP中文网其他相关文章!