码迷,mamicode.com
首页 > Web开发 > 详细

MVC思想 & 全局变量如何变为局部变量

时间:2018-06-15 20:55:22      阅读:439      评论:0      收藏:0      [点我收藏+]

标签:selector   call   思想   tor   server   sele   语法错误   call()   bin   

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思想 & 全局变量如何变为局部变量

标签:selector   call   思想   tor   server   sele   语法错误   call()   bin   

原文地址:https://www.cnblogs.com/nolaaaaa/p/9188865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!