首页 >web前端 >js教程 >JavaScript 对象变量什么时候需要'this”?

JavaScript 对象变量什么时候需要'this”?

Barbara Streisand
Barbara Streisand原创
2024-12-15 08:23:10617浏览

When Do JavaScript Object Variables Need

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn