1. 程式人生 > >es6中改變一個class的全域性變數

es6中改變一個class的全域性變數


宣告一個全域性變數時,使用var,private關鍵字都不對

export class Portal{
    currentPic=0;
    title='kjk';
    constructor(){
        var that=this;
        setInterval(function(){ // 自動播放,每3秒觸發一次單擊事件,來播放幻燈片
var id = (that.currentPic + 1) % 3;
            that.currentPic = id;}, 3000);
    }
}
在setInterval裡面用this來定位全域性變數,並對其改變值,除錯發現,在setInterval()裡面,this是指向window的,於是在
setInterval()方法外面,將類的物件賦值給that來進行儲存,最後改變that的變數的值,就改變了全域性變數的值。

相關推薦

es6改變一個class全域性變數

宣告一個全域性變數時,使用var,private關鍵字都不對 export class Portal{ currentPic=0; title='kjk'; constructor(){ var that=this;

分享一個jquery ajax 不能修改全域性變數問題的方法

今天在做一個專案的時候,由於以前沒有出現過這情況,導致弄了多久才知道是這問題。 出現問題的程式碼 var unc = 0; $.get( 'index.php', 'data=1', function(res) { unc=1; } ); alert(nuc); 這樣的話

JS最經典的全域性變數和區域性變數問題(1、作用域和作用域鏈 2、變數宣告提前)

var a = 10; function test(){ a = 100; console.log(a); console.log(this.a); var a; console.log(a); } test(); 1、程式的執行結果為:100

在Vue專案建立檔案儲存全域性變數和方法

在做Vue專案中經常會遇到某些方法或變數、常量需要跨元件呼叫,使用時不能再元件內區域性宣告,這是後就需要有一個地方來單獨的存放這些全域性的變兩或方法,下面我就簡單接介紹一下這個全域性檔案建立的大概流程以及呼叫方法; 第一步:新建一個.vue的檔案來儲存全域性變數或方法;我建立的檔名為global

為什麼python在函式修改"字典型全域性變數"不需要global

比如下面這段程式碼 s = 'foo' d = {'a':1}   def f():       s = 'bar'     d['b'] = 2 f()   print s   print d   為什麼修改字典d的值不用global關鍵字先宣告呢? 這

一個全域性變數引起的DLL崩潰引發的血案

參考我發的帖子: 現象是exe程式在載入dll的時候崩潰了,莫名其妙的崩潰了。換其它DLL沒問題,我又寫了個DEMO程式使用這個DLL也是一個現象,用OD載入EXE,用ODDLLLOADER載入DLL,結果也是一樣的崩。。搞的我也差點崩潰了。。 載入上微軟符號表後發現

C語言跨檔案的全域性變數

宣告:突然看到這篇文章,發現了c語言中使用全域性變數的錯誤,特轉之。 func.c 123456 int buf = 0; void func() { buf = 2; /* Do something else */ } ma

AndroidApplication類儲存全域性變數

在Android應用中使用全域性變數,除了public的靜態變數,還有更優雅的方式是使用android.app.Application。 啟動Application時,系統會建立一個PID,即程序ID,所有的Activity就會在此程序上執行。 那麼我們在A

python有關函式的全域性變數和區域性變數

例一: a = 9 def b(): print(a) 結果打印出來是:9 a 是定義在函式外部的全域性變數,在函式內部可以使用。 例二: a = 4 def b(): a =

[記錄]如何在vue2.0使用scss配置全域性變數

1.新增依賴npm install sass-resources-loader --save-dev2.修改build/utils.jsscss: generateLoaders('sass').concat( { loader: 'sass-re

vue定義的全域性變數一個方法賦值過後在另一個方法是空

在學習vue的過程中,發現了許多小的問題,例如:我定義一個全域性變數a,為了可以在下面定義的方法中一直取得到這個全域性變數,在方法中我添加了一個jquery的click方法,在這個方法裡面用this.a = b(自定義的一個變數);然後到另一個方法中去使用這個全域性變數a,發現根本沒有進行賦值,還是

編寫一個程式,對一個整型陣列的元素求和,結果使用全域性變數sum儲存,另外對陣列元素的奇數求和,結果使用區域性變數sum儲存,在主程式將兩個結果輸出。

#include<iostream> using namespace std; int sum_1(int a[]);//定義計算奇數的和; int main() { int a[]={1,2,3,4,5,6,7,8,9,10};//定義陣列並附初值; int i,sum=0,s

關於一個檔案全域性變數在其他檔案的使用

錯誤:多重定義 和 xxx變數已經在xxx.obj中定義 當在一個.cpp檔案中定義了一個全域性變數之後,需要在其他檔案中使用時,需要用到關鍵字extern 當使用extern修飾一個變數時,例如extern int x;   代表當前變數x 的定義來自於其他檔案,當

c++多個檔案如何共用一個全域性變數

例子: 標頭檔案:state.h   原始檔:state.cpp         其它原始檔:t1.cpp  t2.cpp  t3.cpp, 這些原始檔都包含標頭檔案state.h。 需要定義一個全域性變數供這些原始檔中使用:方法如下 1、在 state.h宣告全域性變數: extern inta; 2、在

C++學習筆記,關於一個檔案全域性變數在其他檔案的使用

錯誤:多重定義 和 xxx變數已經在xxx.obj中定義 當在一個.cpp檔案中定義了一個全域性變數之後,需要在其他檔案中使用時,需要用到關鍵字extern 當使用extern修飾一個變數時,例如extern int x;   代表當前變數x 的定義來自於其他檔案,當進行

有關QT宣告一個vector為全域性變數的初始化問題

前面說了一個簡單的int型別全域性變數,是怎麼實現的,但是對於更復雜一點的vector型別,上面的方法固然可以借鑑,但是初始化的問題應該是不一樣的。 全域性變數:在標頭檔案的類中宣告,在cpp檔案的函

ES6class關鍵字

不用 必須 var 單獨 ref 命令 solid 直接 ole 1 、介紹 //定義類 class Point { constructor(x, y) { this.x = x;

es6class類的使用

bsp 都是 truct 了解 發現 變化 一點 首字母 聲明 在es5中我們是使用構造函數實例化出來一個對象,那麽構造函數與普通的函數有什麽區別呢?其實沒有區別,無非就是函數名稱用首字母大寫來加以區分,這個不用對說對es5有了解的朋友都應該知道。

ES6Class

用法 proto 提升 調用方法 調用 () 自動 添加 rop prototype class語法中 prototype 依然存在, 類的所有方法都定義在了類的 prototype 屬性上。 class Demo { constructor() {

ES6class的getter和setter在繼承踩坑

在 Class 內部可以使用get和set關鍵字, 對某個屬性設定存值函式和取值函式, 攔截該屬性的存取行為。 在 Class 內部的get、set用法,看起來比較舒服,而且可以寫同名函數了。 class MyClass { constructor() {} get prop() {