zoukankan      html  css  js  c++  java
  • mvc-1mvc和类(2)

    添加私有函数

    var Person = function() {};
    (function() {
      var findById = function(){};
      Person.find = function(id) {
        if(/**/) {
          return findById(id);
        }
        //......
      }
    })();
    

    函数调用--作用域

    • 使用self暂存this
    var clicky = {
        wasClicked: function () {},
        addListeners: function() {
            var self = this;
            $(".clicky").click(function() {
            //更改了上下文,这里指代当前节点
                self.wasClicked();
            })
        }
    }
    clicky.addListeners();
    
    • 使用apply保持原始的上下文
    //类似jquery.proxy;
    var proxy = function(func, thisObject) {
      return(function() {
      	//注意这里的arguments是函数返回执行时传入的jquery.event;
        return func.apply(thisObject, arguments);
      });
    }
    var clicky = {
      wasClicked: function() {alert(1)},
      addListeners: function() {
        $(".clicky").click(proxy(this.wasClicked, this));
      }
    }
    clicky.addListeners();
    
    • '委托'调用
    var App = {
      log: function() {
      	if(typeof console == "undefined") return;
      	var args = $.makeArray(arguments);
      	args.unshift("(App)");
      	//委托给console,注意这里输出的是一个个字符串;
      	console.log.apply(console, args);
      }
    }
    App.log(0,1);
    
  • 相关阅读:
    pycharm远程SSH调用服务器python解释器教程
    SVN自动生成版本号信息
    gtest运行小析
    记一次问题排查心得
    Effective STL读书笔记
    模板单例实现
    NetLimiter网速测试小坑
    客户端升级项目小结
    长训总结
    科目二心得体会
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/4224839.html
Copyright © 2011-2022 走看看