`

javascript中非惰性函数与惰性函数

阅读更多
//非惰性函数与惰性函数
//alert("test");

//来看看js另人意外的东西
var a=2;
function getA(x){
	return x;
}
console.info(getA(a,a=a*2));  //2
console.info(getA(a));        //这里的值是4

//这是由于javaScript支持非惰性求值,上面的结果才会成这样

//下面的这种写法会崩掉
function f(){
}

/*
f(function(){
	while(true){
		
	}
}(););

*/

//解释一种概念
//惰性函数模式是一种将对函数或请求的处理延迟到真正需要结果时进行的通用概念
//惰性编程可以消除不必要的计算

//来个例子三步变
var t;
function f(){
	t=t ? t :new Date();
	return t;
}
f();
//上述代码使用全局变量t来存储时间对象,那么每次调用函数都得重新求值
//代码的执行效率没有得到优化
//存在安全隐患,值会被误改

//用闭包改下
var f1=(function(){
	var t;
	return function(){
		t=t?t:new Date();
		return t;
	}
})();
//右边的为自执行函数返回一个函数f1
f1();
//闭包解决了安全性的问题,但未被解决多次求值的情况


//再做一个变换
var f2=function(){
	var t=new Date();
	f2=function(){
		return t;
	};
	return f2();
};

f2();
//上述代码解决了所提的所有问题
//用了闭包,但返回的是一个确切的值,不管调用多少次,都是f2()的返回值,且存在

 

分享到:
评论

相关推荐

    javascript函数式编程函数柯里化,惰性函数,递归,纯函数.docx

    JavaScript 函数式编程之函数柯里化、惰性函数、递归、纯函数 函数柯里化是 JavaScript 函数式编程中的一种重要概念。它允许我们将函数的参数分批传递,从而实现函数的预加载和缓存。柯里化的优点在于可以提高函数...

    javascript实现根据函数名称字符串动态执行函数的方法示例

    eval()函数可以执行字符串中的JavaScript代码,如果我们知道要调用的函数名的字符串,可以将其与括号“()”组合起来形成代码字符串,并用eval()函数执行。示例代码如下: ```javascript function targetFunction() {...

    javascript指南和函数式编程

    而《JavaScript函数式.zip》可能是一份关于JavaScript函数式编程的资料集合,函数式编程是一种编程范式,强调使用函数和避免改变状态。其中可能涵盖以下知识点: 1. **纯函数**:理解纯函数的定义,即给定相同的...

    javascript函数式编程

    6. **惰性计算**:在JavaScript中,惰性计算推迟了对值的计算,直到其真正需要时才进行。这有助于优化性能,特别是处理大数据集时。 7. **函数工厂**:函数工厂是创建新函数的函数,它可以接受参数,根据这些参数...

    JavaScript之函数(ppt)

    JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数...

    javascript常用判断函数

    这个函数的主要功能是计算字符串的长度,但与JavaScript原生的`length`属性不同,`DataLength`考虑了Unicode字符的情况。在JavaScript中,一个Unicode字符可能占用两个字节,而普通ASCII字符只占用一个字节。因此,...

    JavaScript ES6函数式编程入门经典_javascript_

    JavaScript ES6函数式编程是现代Web开发中的重要概念,它为开发者提供了更高效、更简洁的编程方式。本文将深入探讨ES6中的函数式编程特性,帮助初学者掌握这一核心技能。 1. **箭头函数**:箭头函数是ES6引入的一种...

    JavaScript实用小函数(一)

    7. **原型链与继承**: JavaScript通过原型实现继承,每个对象都有一个`__proto__`属性,指向创建它的构造函数的原型。继承是通过`prototype`对象和`Object.create()`方法实现的。 8. **多态**: 多态是指同一消息...

    JavaScript学习笔记之惰性函数示例详解

    函数是js世界的一等公民,js的动态性、易变性在函数的应用上,体现的淋漓尽致。下面这篇文章主要给大家介绍了关于JavaScript学习笔记之惰性函数的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。

    JavaScript 轻量级函数式编程

    JavaScript 轻量级函数式编程 JavaScript 轻量级函数式编程

    【JavaScript源代码】JavaScript中箭头函数与普通函数的区别详解.docx

    JavaScript中的箭头函数和普通函数在使用上有显著的差异,这些差异主要体现在以下几个方面: 1. **函数定义的简洁性**: - 箭头函数的语法更紧凑,可以视为匿名函数的一种简写形式。如果函数体只包含一个表达式,...

    Javascript函数与对象

    ### JavaScript函数与对象详解 在JavaScript中,函数与对象是两个核心概念,它们构成了这门语言的基石。本文将深入探讨这两个主题,帮助读者更好地理解并掌握JavaScript。 #### 函数 函数是JavaScript中的第一类...

    javascript函数速查

    JavaScript函数是编程语言的核心组成部分,它是一段可重复使用的代码块,可以接受参数并返回值。在JavaScript中,函数不仅可以作为表达式,还能作为变量赋值、作为参数传递以及作为返回值。本速查指南将深入探讨...

    JavaScript中函数与对象的解析.pdf

    JavaScript 中函数与对象的解析 JavaScript 中的函数与对象是掌握 JavaScript 语 言的基础。JavaScript 语 言与 C++、Java 等语 言在语法上类似,但其函数具有独特性。本文将深入了解 JavaScript 语言中的函数与...

    Javascript的匿名函数

    #### 一、匿名函数的基本概念与形式 1. **基本形式** - **命名函数表达式**:这是一种常见的定义匿名函数的方式。 ```javascript function fnMethodName(x) { alert(x); } ``` - **匿名函数表达式**: ```...

    javascript函数式编程 underscore.js

    JavaScript函数式编程是一种编程范式,它强调使用函数来组织代码,将计算视为一系列惰性求值的操作。Underscore.js是一个轻量级的JavaScript实用库,它为开发者提供了大量函数式编程工具,使得在JavaScript中实践...

    第4章 JavaScript中的函数

    第4章 JavaScript中的函数

    JavaScript函数式编程pdf

    JavaScript函数式编程是一种编程范式,它将计算视为数据处理,并强调使用无副作用的纯函数。在JavaScript中,函数式编程允许我们写出更简洁、可读性更强的代码,同时提高了代码的复用性和测试性。《JavaScript函数式...

    javascript强制函数自动执行.pdf

    ### JavaScript中的函数声明与函数表达式 在JavaScript中,函数是一种非常重要的编程构造,它可以被定义为函数声明或函数表达式。这两种定义方式各有特点,并且在不同的上下文中有着不同的行为。 #### 函数声明...

Global site tag (gtag.js) - Google Analytics