美文网首页
懒惰函数定义

懒惰函数定义

作者: TingsLee | 来源:发表于2016-09-08 18:12 被阅读0次

1.举个例子

var scareMe = function () { alert("king"); scareMe = function () { alert("double king"); } }

scareMe(); // king scareMe(); //double king

优点:函数有些初始化工作要做,并且仅需执行一次,可以使用这种模式,显著提升程序性能
缺点:当他重定义自身时已经添加到原始函数上的任何属性都会丢失;吐过函数开始分配给了另一个变量或者对象的方法,则重定义行为不会发生

2.应用

2.1 浏览器兼容性检测

function addEvent (type, element, fun) { if (element.addEventListener) { element.addEventListener(type, fun, false); } else if(element.attachEvent){ element.attachEvent('on' + type, fun); } else{ element['on' + type] = fun; } }

使用上述代码会执行重复检测,而同一个应用环境中,只需检测一次

function addEvent (type, element, fun) { if (element.addEventListener) { addEvent = function (type, element, fun) { element.addEventListener(type, fun, false); } } else if(element.attachEvent){ addEvent = function (type, element, fun) { element.attachEvent('on' + type, fun); } } else{ addEvent = function (type, element, fun) { element['on' + type] = fun; } } return addEvent(type, element, fun); }

重写上述函数,并在函数内部根据判断重定义了自身

2.2创建单例对象
unction Universe() { // 缓存的实例 var instance = this; // 其它内容 this.start_time = 0; this.bang = "Big"; // 重写构造函数 Universe = function () { return instance; }; }

3.总结

  • 应用频繁,如果只用一次,是体现不出它的优点出来的,用的次数越多,越能体现这种模式的优势所在;

  • 固定不变,一次判定,在固定的应用环境中不会发生改变;

  • 复杂的分支判断,没有差异性,不需要应用这种模式;

相关文章

  • 懒惰函数定义

    1.举个例子 var scareMe = function () { alert("king"); scareMe...

  • 函数

    定义:具有特定功能的代码段 函数可分为:①库函数②自定义函数 函数定义:在 main函数 外面定义 自定义函数还可...

  • Kotlin Function vs Lambda

    函数定义方式: Lambda定义方式: 高阶函数定义: 高阶函数使用:

  • 廖雪峰的JS教程2.1-函数

    函数 函数的定义和调用 定义函数 上述abs()函数的定义如下: function指出这是一个函数定义; abs是...

  • 深入理解JavaScript函数

    JavaScript中的函数 1. 函数的定义 两种定义形式:通过函数定义表达式来定义通过函数声明语句来定义 函数...

  • JS 函数

    函数有三种定义方式 函数声明 函数表达式 函数实例化 区别: 函数声明定义特点:函数定义会被前置;重复定义函数时,...

  • JavaScript 函数

    函数函数定义与调用变量作用域全局变量方法高阶函数闭包箭头函数$generator$ 函数 函数定义与调用 定义函数...

  • JS函数

    1.如何定义一个函数 1.1定义具名函数 1.2定义匿名函数 上面的具名函数去掉函数名就是匿名函数 1.3定义箭头...

  • 菜鸟Python笔记-基础篇05:函数(一)

    一、函数定义和调用 <1>定义函数 定义函数的格式如下: demo: <2>调用函数 定义了函数之后,就相当于有了...

  • 004-函数

    函数介绍 函数概念 函数的定义和调用函数的定义(函数可以重复调用,不能重复定义)语法格式:def 函数名(): ...

网友评论

      本文标题:懒惰函数定义

      本文链接:https://www.haomeiwen.com/subject/jdosettx.html