1. 程式人生 > >MVC思想 & 全局變量如何變為局部變量

MVC思想 & 全局變量如何變為局部變量

操作 怎麽 select tor 推薦 AR view 改變 sele

MVC思想 & 全局變量如何變為局部變量

1 MVC思想

  1. VC 第一版

    !function(){ 
    var view = document.querySelector(‘xxx‘)
    var controller = function(view){
        ..…   }
    controller.call(null,view)
    }.call()     
  2. VC 第二版,添加init

    !function(){
      var view = document.querySelector(‘xxx‘)
    var controller = {
    view: null,
    init: function(view){
        this.bindEvents().    //this.bindEvents().call(this)
    },
    bindEvents: function(){
        ...
    … }
    }
      controller.init(view).      //controller.init.call(controller,view)
    }.call()         
  3. MVC思想完整版

    !function(){
      //M 數據相關的操作,負責和server數據交互
    var model = {
      fetch: function(){    
            ...
      },
      save: function(){  
            ...
      }
    }
    
      //V 負責視圖展示
    var view = document.querySelector(‘xxx‘)
    
      //C 負責邏輯等其他
    var controller = {
      view: null,
      model: null,
      init: function(view,model){
        this.view = view
        this.model = model
        this.bindEvents()
      },
      bindEvents: function(){     
            ...
      }
      }
      controller.init(view,model)
    }.call()

2 函數中的全局變量如何變成局部變量?

  1. 全局變量之間會相互騷擾。所以在代碼中不要用全局變量。ES6之前只有函數裏面有全局變量。

  2. 全局變成局部變量怎麽變?
    • 把代—放在一個函數如中,再.call()執行一下這個函數?行不行?
    • 不行—樣的話函數名也是一個全局變量(全局函數)。
    • 那麽—掉函數名把函數變成一個匿名函數?再function(){}.call()立即執行,這樣 可以,但是Chrome報錯,語法錯誤。
  3. 全局變量變局部變量的方法:
    • 方法一:!function(){}.call( )
      (前面加+、-、!都可以,這種方法會改變函數的返回值,但是不在乎這個函數的返回值的話加個取反沒有關系)
    • 方法二:(function(){}).call( )
      (用括號把函數括起來。但是不推薦這種做法,因為如果(函數)的前一行被加上一個xxx,很容易被瀏覽器誤解為是在xxx()。)

MVC思想 & 全局變量如何變為局部變量