Javascript 对象变量需要“this”吗?
在 Javascript 中,类的概念与 C 等语言不同。缺乏基于类的继承,为原型继承让路。对象及其属性起着至关重要的作用。
使用构造函数构造对象时,“this”关键字授予对对象属性的访问权限。考虑以下示例:
function Foo() { this.bar = 0; }
在此构造函数中,“this”关键字将“bar”属性与创建的对象关联起来。如果不使用它会导致错误“bar is undefined。”
但是,开发者发现了一个技巧,使用构造函数作为闭包,创建私人“属性”:
function Foo() { var bar = "foo"; this.getBar = function getter() { return bar; }; }
在此示例中,变量“bar”是在本地声明的,而“getBar”是访问它的特权方法。这种技术允许创建不能在外部修改的私有变量。
需要注意的是,在原型上声明的方法无法访问构造函数中的局部变量。然而,他们可以利用特权方法。在下面的代码中,原型方法“getFooBar”使用“getBar”方法连接后缀:
Foo.prototype.getFooBar = function() { return this.getBar() + "bar"; }
这允许创建公共(原型方法)和私有(特权方法)属性在单个对象内。考虑内存使用非常重要,因为特权方法会创建具有不同作用域链的不同函数对象。对于大量实例,首选原型方法。
以上是JavaScript 对象变量什么时候需要'this”?的详细内容。更多信息请关注PHP中文网其他相关文章!