1 函数中的全局变量如何变成局部变量?

  1. 全局变量之间会相互骚扰。所以在代码中不要用全局变量。ES6之前只有函数里面有全局变量。

  2. 全局变成局部变量怎么变?

    • 把代—放在一个函数如中,再.call()执行一下这个函数?行不行?
    • 不行—样的话函数名也是一个全局变量(全局函数)。
    • 那么—掉函数名把函数变成一个匿名函数?再function(){}.call()立即执行,这样 可以,但是Chrome报错,语法错误。
  3. 全局变量变局部变量的方法:

    • 方法一:!function(){}.call( )

      (前面加+、-、!都可以,这种方法会改变函数的返回值,但是不在乎这个函数的返回值的话加个取反没有关系)
    • 方法二:(function(){}).call( )

      (用括号把函数括起来。但是不推荐这种做法,因为如果(函数)的前一行被加上一个xxx,很容易被浏览器误解为是在xxx()。)

2 MVC思想

  1. 什么是MVC思想

    MVC 是一种设计模式(或者软件架构),把系统分为三层:Model数据、View视图和Controller控制器。

    Model 数据管理,包括数据逻辑、数据请求、数据存储等功能。前端 Model 主要负责 AJAX 请求或者 LocalStorage 存储

    View 负责用户界面,前端 View 主要负责 HTML 渲染。

    Controller 负责处理 View 的事件,并更新 Model;也负责监听 Model 的变化,并更新 View,Controller 控制其他的所有流程。

    Model和服务器交互,Model 将得到的数据交给 Controller,Controller 把数据填入 View,并监听 View。用户操作 View,如点击按钮,Controller 就会接受到点击事件,Controller 这时会去调用 Model,Model 会与服务器交互,得到数据后返回给 Controller,Controller 得到数据就去更新 View。

  2. MVC思想的由来

    MVC是XeroxPARC在八十年代为编程语言Smalltalk发明的一种软件设计模式,至今已被广泛使用。

  3. VC 第一版

!function(){
var view = document.querySelector(‘xxx')
var controller = function(view){
..… }
controller.call(null,view)
}.call()
  1. 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()
  1. 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()

最新文章

  1. Javascript 笔记与总结(2-8)对象2
  2. Windows系统下搭建Jenkins环境
  3. HDU5319
  4. poj 2533 Longest Ordered Subsequence(LIS)
  5. ReactiveCocoa--RACTuple
  6. zookeeper初探
  7. Linux(CentOs 7)系统重装笔记(二)---完全删除用户账号和root用户登录
  8. SnowFlake学习
  9. 新年Flag,零基础程序媛编程学习计划(持续更新ing)~~
  10. WinForm将一个窗体的值传到另一个窗体的listbox控件,C#
  11. 总结Javascript中数组各种去重的方法
  12. Java可视操作界面例子
  13. python httplib2应用get post
  14. JDBC setCatalog
  15. java实现24点游戏代码
  16. vue-resource使用笔记
  17. Linux的发行版之间的联系和区别
  18. OC导入框架方式#import、@import的区别
  19. elasticsearch 基础性操作
  20. linux中tr用法

热门文章

  1. Arduino 操作共阴极RGB LED
  2. nim游戏解法(转)
  3. golang入门-defer
  4. 【剑指Offer】52、正则表达式匹配
  5. Codeforces Round #550 (Div. 3)E. Median String
  6. swift-自动计算字符串的宽高
  7. UVA133 - The Dole Queue【紫书例题4.3】
  8. [Usaco2004 Open]Cube Stacking 方块游戏
  9. 支持移动触摸的jQuery图片Lightbox插件
  10. Oracle笔记 多表查询