搜尋

首頁  >  問答  >  主體

javascript - 方法要用到一個外部的資料 那麼是優先選擇當成參數傳過去 還是把資料存成相對當前作用域來說全域的變數~

var test = {
    init: function () {
        var data = $rootScope.test;
        
        if(data) {
            ……
            this.method(data);
        } 
    },
    
    method: function (data) {
        console.log(data);
    }
};

還是

var test = {
    data: $rootScope.test,
    
    init: function () {
        if(this.data) {
            ……
            this.method();
        } 
    },
    
    method: function () {
        console.log(this.data);
    }
};

哪種方式是最佳實踐

如果第一種方式要傳遞的層級過多怎麼辦例如開始是init 調method 傳過去之後有method[n] 種執行順序是init -> method -> method2 -> method3 這樣的要一級一級傳嗎…

還有就是兩種方法那種性能高些呢 第二種每次取值都相當於取對象的屬性 表像上直接傳參性能會跟憂些? ~

女神的闺蜜爱上我女神的闺蜜爱上我2708 天前844

全部回覆(3)我來回復

  • 三叔

    三叔2017-07-05 11:02:45

    傳遞,全域變數少用

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-07-05 11:02:45

    你的例子裡不算全域變數!

    掛在物件的屬性上,不會影響到方法內部變數的使用!也不會污染作用域!

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 11:02:45

    你這裡實現的不是全域變量,只是掛在到了物件的屬性上,還有這裡何必要申明一個變數呢,並沒有看到你實際操作這個data,如果只是想引用一下值得話,那麼直接用$rootScope.test不就好了?

    回覆
    0
  • 取消回覆