首頁 > web前端 > js教程 > JavaScript 物件變數什麼時候需要「this」?

JavaScript 物件變數什麼時候需要「this」?

Barbara Streisand
發布: 2024-12-15 08:23:10
原創
615 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板