`
pollyanna
  • 浏览: 8097 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论
  • pollyanna: css中clear的作用:clear 属性定义了元素的哪边上不 ...
    CSS学习

我学js函数

 
阅读更多

很酷的一个东西——函数的自定义属性

    函数也是一个对象,它也可以拥有属性。比如当我们在调用函数时,希望能保存一些变量,在每次调用这个函数的时候都能用上,这个时候我们就可以定义一个函数属性。

 

/*这是一个计算阶乘的函数。*/

function factorial(n) {
	if(!(n in factorial)){
		factorial[n] = factorial(n-1) * n;
	}
	return factorial[n];
}

factorial[1] = 1; // 初始化

 这个时候factorial就是一个函数对象。这样的好处是,在有些情况下,不用每次都去迭代计算一次阶乘。
比如说:

 

 

var a = factorial(5);

 这个时候,factorial这个对象里面会有5,4,3,2,1这5个属性,每个属性的值分别对应于他们的阶乘。
这样的话,如果当我输入:

 

 

var b = factorial(4);

 这个时候,他就不会去计算4×3×2×1了,而是直接取出4的阶乘的值。

 

 


闭包(closure,我喜欢这个名字)

var scope = 'global scope';
function checkscope() = {
	var scope = 'local scope';
	function f() = {return scope;}
	return f;
}

	checkscopr()();

--> local scope

JS的函数在执行时要用要作用域链,这个作用域链是在函数定义的时候创建的。
闭包的意义就是:函数定义时的作用域链到执行的时候依然有效。
闭包意味着内层的函数可以引用存在于包围它的函数内的变量,即使外层函数的执行已经终止了。

 

 

 

(未完,当我有什么新收获的时候,我会继续把它加上来)

分享到:
评论

相关推荐

    javaScript函数式编程

    本书专门介绍JavaScript函数式编程的特性。 全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量的作用域和闭包、高阶函数、由函数构建函数、递归、纯度和不变性以及更改政策、基于流的...

    JS 函数式编程指南

    我们将使用 JavaScript 这个世界上最流行的函数式编程语言来讲述这一主题。有人可能会觉得选择 JavaScript 并不明智,因为当前的主流观点认为它是一门命令式(imperative)的...但我认为,这是学习函数式编程的最好方式

    JavaScript函数式编程.pdf

    JavaScript函数式编程.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!

    JavaScript的系统函数学习

    JavaScript的系统函数资料,相当的经典。

    JavaScript完全学习手册

    资源名称:Javascript完全学习手册内容简介:本书分4篇14章,介绍Javascript的知识,全书内容包括:Javascript语法基础、流程控制、函数、内置对象编程、文档对象模型DOM与事件驱动、处理XML、...

    javascript函数的解释

    javascript函数的解释,解释了具体函数的功能,一、函数JavaScript函数集合 1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:...

    JavaScript常用函数练习

    JavaScript学习函数时,常常会听懂了却做不来实际例子,本资源有部分函数的经典案例及答案,其中有些是基础题,有些逻辑对新人来说难以理解,希望对大家有所帮助。

    JavaScript ES6函数式编程入门经典

    《JavaScriptES6函数式编程入门经典》... ●理解真实的函数式类库,并创建一个模拟underscore.js的函数式类库  ●实践纯错误处理技术,例如函子和Monad  ●了解ES6的函数式编程特性,例如扩展运算符和Generator

    轻松学习JavaScript函数中的 Rest 参数

    JavaScript函数可以使用任意数量的参数。与其他语言(如C#和Java)不同,你可以在调用JavaScript函数时传递任意数量的参数。JavaScript函数允许未知数量的函数参数。在ECMAScript 6之前,JavaScript有一个变量来访问...

    JavaScript 浮点 运算 函数

    由于刚刚学写JS,所以可能考虑不够周全,望大家批评指正。 代码中加了四舍五入函数,是网上搜到的。 此函数在程序使用中没有必要任何的版权声明,但是如果在网站、论坛或者博客中转载的话,希望能写明原作者为...

    常用的JS 特效 函数

    常用的js特效函数,很多有用的例子 供大家学习参考!

    学习DWR JavaScript函数整理

    ** 描 述:公用函数 ** 版 本:V1.0 ******************************************************************/ //全局变量 g_sourceSubstr = "`~" //要替换的字串 g_objecSubstr = "\"" //替换为的字串 /***********...

    关于javascript函数学习资料

    javascript函数的创建与使用

    JavaScript学习资料JavaScript基础语法函数及相关源代码资料.zip

    JavaScript函数(源代码).zip JavaScript分支语句(源代码).zip JavaScript基础语法(ppt).pdf JavaScript实现轮播特效(代码).zip JavaScript常用运算符和操作符总结(教辅).pdf JavaScript数组(源代码).zip ...

    《JS 函数式编程指南》中文版

    这本书的主题是函数范式(functional paradigm),我们将使用 JavaScript 这个世界上最流行的函数式编程语言来讲述这一主题。有人可能会觉得选择 JavaScript 并不明智,因为...但我认为,这是学习函数式编程的最好方式

    jQuery是目前使用最广泛的javascript函数库。这个是很好的学习资料

    jQuery技术资料,前使用最广泛的javascript函数库。这个是很好的学习资料

    JavaScript函数-深入解析与使用指南(很详细)

    1.本文将深入探讨JavaScript函数的基本原理、特点,并通过多个示例展示函数的使用流程和步骤。读者将学习到如何定义函数、编写函数体、调用函数以及处理返回值。此外,文章还将对函数的参数、作用域以及闭包等高级...

    js闭包函数

    学习javascript闭包函数的实用文档,讲解全面、详细。pdf格式,

    javascript逆向 猿人学 js混淆 回溯 逆向学习

    猿人学JS混淆是一种常见的JavaScript混淆技术,通过对代码进行重构、变量名替换、函数调用转换等手段,使得代码难以直观理解,增加了阅读和分析的难度。 在进行JavaScript逆向学习时,首先需要通过反混淆技术将混淆...

Global site tag (gtag.js) - Google Analytics