js内部私有函数

合集下载

js的常用函数

js的常用函数

js的常用函数(原创实用版)目录一、JavaScript 函数分类二、常规函数1.alert 函数2.confirm 函数3.escape 函数4.eval 函数5.isNaN 函数6.parseFloat 函数7.parseInt 函数三、数组函数四、日期函数五、数学函数六、字符串函数正文JavaScript 是一种广泛应用于网页开发的编程语言,其中的函数是其重要的组成部分。

JavaScript 函数可以根据其用途和特性分为五类,包括常规函数、数组函数、日期函数、数学函数和字符串函数。

一、JavaScript 函数分类1.常规函数:这类函数主要用于处理一些常见的任务,如显示警告对话框、确认对话框、转换字符编码等。

2.数组函数:这类函数主要用于处理数组数据,包括数组的创建、修改、遍历等操作。

3.日期函数:这类函数主要用于处理日期和时间相关的任务,如获取当前日期、格式化日期等。

4.数学函数:这类函数主要用于执行一些数学运算,如计算平方根、绝对值、乘法等。

5.字符串函数:这类函数主要用于处理字符串数据,包括字符串的创建、修改、遍历等操作。

二、常规函数1.alert 函数:用于显示一个带有 OK 按钮的警告对话框。

2.confirm 函数:用于显示一个带有 OK 和 Cancel 按钮的确认对话框。

3.escape 函数:用于将特殊字符转换为对应的 Unicode 编码。

4.eval 函数:用于计算一个表达式的结果。

5.isNaN 函数:用于测试一个值是否为非数字。

6.parseFloat 函数:用于将一个字符串转换为浮点数。

7.parseInt 函数:用于将一个字符串转换为整数。

以上就是 JavaScript 中的常用函数大全,包括常规函数、数组函数、日期函数、数学函数和字符串函数。

js三种定义类的方法

js三种定义类的方法

js三种定义类的⽅法之前在伯乐看到的javascript定义类的三种⽅法。

javascript不⽀持类,但变通⼀下⽅法就可以模拟出‘类’;1、构造函数法⽤构造函数模拟“类”,在其内部⽤this关键字指向实例对象。

function Cat(){="⼩⿊";}要⽣成实例的话就⽤new关键字var cat1=new Cat();alert();类的属性和⽅法可以定义在构造函数的prototype对象上。

Cat.prototype.makeSound=function(){alert("喵喵喵");}⼆、Object.create()法。

为了解决”构造函数法”的缺点,更⽅便地⽣成对象,Javascript的国际标准ECMAScript第五版(⽬前通⾏的是第三版),提出了⼀个新的⽅法Object.create()。

⽤这个⽅法,”类”就是⼀个对象,不是函数。

var Cat={name:"⼩⿊";makeSound:function(){alert("喵喵喵");}}然后直接⽤Object.create()⽣成实例,这个就不需要⽤到new关键字了。

var cat1=Object.create(Cat);alert(); //⼩⿊cat1.makeSound();//喵喵喵各⼤浏览器的最新版本都⽀持这个⽅法,包括IE9,如果不⽀持此⽅法的话,如下做:if(!Object.create){Object.create=function(o){function F(){};F.prototype=o;return new F();}}这种⽅法⽐”构造函数法”简单,但是不能实现私有属性和私有⽅法,实例对象之间也不能共享数据,对”类”的模拟不够全⾯。

那么接下去看第三种⽅法。

三、极简主义法1、封装这种⽅法不实⽤this和prototype,代码部署起来⾮常简单,这⼤概也就是他被叫做“极简主义法”的原因。

JS中常用的内置函数

JS中常用的内置函数

JS中常⽤的内置函数JS内置函数不从属于任何对象,在JS语句的任何地⽅都可以直接使⽤这些函数。

JS中常⽤的内置函数如下: 1、eval(str)接收⼀个字符串形式的表达式,并试图求出表达式的值。

作为参数的表达式可以采⽤任何合法的操作符和常数。

如果参数中包含JS命令,这些命令也可以被执⾏,就像这些命令是JS程序的⼀部分⼀样。

2、parseInt(str,n)试图从⼀个字符串中提取⼀个整数。

可附加⼀个n整数实现返回n进制整数。

如果在字符串中存在除了数字、符号、⼩数点和指数符号以外的字符,就停⽌转换,返回已有的结果。

如果第⼀个字符就不能转换,函数就返回NaN值。

3、parseFloat(str)试图从⼀个字符串中提取⼀个浮点值。

如果在字符串中存在除了数字、符号、⼩数点和指数符号以外的字符,就停⽌转换并返回已有的结果。

如果第⼀个字符就不能转换,函数就返回NaN值。

4、isNaN()⽤于判断是否为NaN值类型,如果是函数返回true。

5、isFinite(number)可以判断参数number是否是⼀个⽆穷。

如果是则函数返回false,否则返回true。

6、escape()接受⼀个字符串,这个字符串中可能含有空格、分号等字符。

函数把字符串转换成Cookie的内部表⽰⽅式。

函数返回值就是这种内部的表达⽅式。

7、unescape()接受⼀个Cookie,把其内部表达⽅式转化成普通的字符串形式。

JS函数⼀共可分为常规函数、数组函数、⽇期函数、数学函数、字符串函数等五类。

1.9个常规函数 (1)alert函数:显⽰⼀个警告对话框,包括⼀个OK按钮。

(2)confirm函数:显⽰⼀个确认对话框,包括OK、Cancel按钮。

(3)escape函数:将字符转换成Unicode码。

(4)eval函数:计算表达式的结果。

(5)isNaN函数:测试是(true)否(false)不是⼀个数字。

(6)parseFloat函数:将字符串转换成符点数字形式。

js面向对象之公有、私有、静态属性和方法详解

js面向对象之公有、私有、静态属性和方法详解

js⾯向对象之公有、私有、静态属性和⽅法详解现下,javascript⼤⾏其道,对于⽹站开发⼈员来说,javascript是必需掌据的⼀门语⾔,但随着jquery等框架的流⾏和使⽤,许多⼈对于原⽣javascript缺乏深⼊的理解,习惯了函数式的编辑风格,对于闭包、原型总是说不清道不明.对于js⾯向对象蹩脚的⽤着,⽽要了解js⾯向对象,就必需先了解js中什么是公有⽅法、特权⽅法、静态⽅法⽅法/步骤1.公有属性和公有⽅法function User(name,age){ = name;//公有属性this.age = age;}User.prototype.getName = function(){//公有⽅法return ;}var user = new User('fire⼦海',26);console.log(user.getName());//output:fire⼦海2.私有属性和⽅法function User(name,age){var name = name;//私有属性var age = age;function alertAge(){//私有⽅法alert(age);}alertAge(age); //弹出26}var user = new User('fire⼦海',26);3.静态属性和⽅法在php中,⽆需实例化就可以调⽤的⽅法就叫静态⽅法,js也⼀样,⽆需实例化,即⽤new操作符实化对象,就可调⽤对象的⽅法和属性。

function User(){}User.age = 26;//静态属性User.myname = 'fire⼦海';User.getName =function(){//静态⽅法return this.myname;//如果这⾥使⽤,返回的将是User,所有改⽤了myname,}console.log(User.getName());//output:fire⼦海4.特权⽅法function User(name,age){var name = name;//私有属性var age = age;this.getName = function(){ //特权⽅法return name;//私有属性和⽅法不能使⽤this调⽤}}var user = new User('fire⼦海',26);console.log(user.getName());//output:fire⼦海5.静态类对于静态⽅法和静态属性,我们⽆需像第三步中那样去创建,如果⽹友看过我那篇“js如何制作图⽚轮播”,就知道可以使⽤字⾯量的⽅式来创建。

JS的闭包、高阶函数、柯里化

JS的闭包、高阶函数、柯里化

JS的闭包、⾼阶函数、柯⾥化JS的闭包,是⼀个谈论得⽐较多的话题了,不过细细想来,有些⼈还是理不清闭包的概念定义以及相关的特性。

这⾥就整理⼀些,做个总结。

⼀、闭包1. 闭包的概念闭包与执⾏上下⽂、环境、作⽤域息息相关执⾏上下⽂执⾏上下⽂是⽤于跟踪运⾏时代码求值的⼀个规范设备,从逻辑上讲,执⾏上下⽂是⽤执⾏上下⽂栈(栈、调⽤栈)来维护的。

代码有⼏种类型:全局代码、函数代码、eval代码和模块代码;每种代码都是在其执⾏上下⽂中求值。

当函数被调⽤时,就创建了⼀个新的执⾏上下⽂,并被压到栈中 - 此时,它变成⼀个活动的执⾏上下⽂。

当函数返回时,此上下⽂被从栈中弹出function recursive(flag) {// Exit condition.if (flag === 2) {return;}// Call recursively.recursive(++flag);}// Go.recursive(0);调⽤另⼀个上下⽂的上下⽂被称为调⽤者(caller)。

被调⽤的上下⽂相应地被称为被调⽤者(callee),在这段代码中,recursive 既是调⽤者,⼜是被调⽤者对应的执⾏上下⽂栈通常,⼀个上下⽂的代码会⼀直运⾏到结束。

然⽽在异步处理的 Generator中,是特殊的。

⼀个Generator函数可能会挂起其正在执⾏的上下⽂,并在结束前将其从栈中删除。

⼀旦Generator再次激活,它上下⽂就被恢复,并再次压⼊栈中function *g() {yield 1;yield 2;}var f = g();f.next();f.next();yield 语句将值返回给调⽤者,并弹出上下⽂。

⽽在调⽤ next 时,同⼀个上下⽂被再次压⼊栈中,并恢复环境每个执⾏上下⽂都有⼀个相关联的词法环境可以把词法环境定义为⼀个在作⽤域中的变量、函数和类的仓库,每个环境有⼀个对可选的⽗环境的引⽤⽐如这段代码中的全局上下⽂与foo函数的上下⽂对应的环境let x = 10;let y = 20;function foo(z) {let x = 100;return x + y + z;}foo(30); // 150作⽤域当⼀个执⾏上下⽂被创建时,就与⼀个特定的作⽤域(代码域 realm)关联起来。

js自调用函数

js自调用函数

js自调用函数
JavaScript自调用函数是一种特殊的函数,它可以自行调用自身,而不需要外部调用。

它通常用于创建独立的作用域,以保护变量和函数不受外部干扰。

它也可以用于模块化编程,以便将程序分割成一个个可重用的代码段。

JavaScript的自调用函数通常以下面的语法进行定义:
(function(){
//函数体
})();
在这里,函数被包裹在一对圆括号中,同时又被另一对括号调用,所以它就被称为“自调用函数”。

当JavaScript解释器遇到这种情况时,它会立即调用这个函数,而不需要外部调用。

在JavaScript中,自调用函数可以创建一个局部作用域,从而防止变量和函数被外部访问。

除了变量和函数之外,也可以使用自调用函数来实现模块化编程,以便将复杂程序分割成一个个可重用的代码段。

自调用函数还可以用来实现某些特殊的功能,例如延迟执行某些代码,在某些特定的事件发生后执行代码,或者执行某些循环操作。

总的来说,JavaScript自调用函数是一种非常实用的技术,它可以帮助我们实现一些特殊的功能,并有效地保护变量和函数不受外部干扰。

它同时也是模块化编程的重要工具,可以有效地将复杂的程序分割成一个个可重用的模块。

Js函数大全

Js函数大全

Js函数大全1. document.write("");为输出语句2 .JS中的注释为//3. 传统的HTML文档顺序是:document->html->(head,body)4. 一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document)5. 得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value)6. 一个小写转大写的JS:document.getElementById("output").value = document.getElementById("input").value.toUpperCase();7. JS中的值类型:String,Number,Boolean,Null,Object,Function8. JS中的字符型转换成数值型:parseInt(),parseFloat()9. JS中的数字转换成字符型:(""+变量)10. JS中的取字符串长度是:(length)11. JS中的字符与字符相连接使用+号.12. JS中的比较操作符有:==等于,!=不等于,>,>=,<.<=13. JS中声明变量使用:var来进行声明14. JS中的判断语句结构:if(condition){}else{}15. JS中的循环结构:for([initial expression];[condition];[upadte expression]) {inside loop}16. 循环中止的命令是:break17. JS中的函数定义:function functionName([parameter],...){statement[s]}18. 当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替.19. 窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self20. 状态栏的设置:window.status="字符";21. 弹出提示信息:window.alert("字符");22. 弹出确认框:window.confirm();23. 弹出输入提示框:window.prompt();24. 指定当前显示链接的位置:window.location.href="URL"25. 取出窗体中的所有表单的数量:document.forms.length26. 关闭文档的输出流:document.close();27. 字符串追加连接符:+=28. 创建一个文档元素:document.createElement(),document.createTextNode()29. 得到元素的方法:document.getElementById()30. 设置表单中所有文本型的成员的值为空:var form = window.document.forms[0]for (var i = 0; i<form.elements.length;i++){if (form.elements[i].type == "text"){form.elements[i].value = "";}}31. 复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中,返回TRUE或FALSE)32. 单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length33. 单选按钮组判断是否被选中也是用checked.34. 下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来确定被选中的值)35. 字符串的定义:var myString = new String("This is lightsword");36. 字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase();37. 返回字符串2在字符串1中出现的位置:String1.indexOf("String2")!=-1则说明没找到.38. 取字符串中指定位置的一个字符:StringA.charAt(9);39. 取出字符串中指定起点和终点的子字符串:stringA.substring(2,6);40. 数学函数:Math.PI(返回圆周率),Math.SQRT2(返回开方),Math.max(value1,value2)返回两个数中的最在值,Math.pow(value1,10)返回value1的十次方,Math.round(value1)四舍五入函数,Math.floor(Math.random()*(n+1))返回随机数41. 定义日期型变量:var today = new Date();42. 日期函数列表:dateObj.getTime()得到时间,dateObj.getYear()得到年份,dateObj.getFullYear()得到四位的年份,dateObj.getMonth()得到月份,dateObj.getDate()得到日,dateObj.getDay()得到日期几,dateObj.getHours()得到小时,dateObj.getMinutes()得到分,dateObj.getSeconds()得到秒,dateObj.setTime(value)设置时间,dateObj.setYear(val)设置年,dateObj.setMonth(val)设置月,dateObj.setDate(val)设置日,dateObj.setDay(val)设置星期几,dateObj.setHours设置小时,dateObj.setMinutes(val) 设置分,dateObj.setSeconds(val)设置秒[注意:此日期时间从0开始计]43. FRAME的表示方式:[window.]frames[n].ObjFuncVarName,frames["frameName"].ObjFuncVarName,frameName.ObjFu ncVarName44. parent代表父亲对象,top代表最顶端对象45. 打开子窗口的父窗口为:opener46. 表示当前所属的位置:this47. 当在超链接中调用JS函数时用:(javascript:)来开头后面加函数名48. 在老的浏览器中不执行此JS:<!-- //-->49. 引用一个文件式的JS:<script type="text/javascript" src="aaa.js"></script>50. 指定在不支持脚本的浏览器显示的HTML:<noscript></noscript>51. 当超链和ONCLICK事件都有时,则老版本的浏览器转向 a.html,否则转向 b.html.例:<a href="a.html" onclick="location.href='b.html';return false">dfsadf</a>52. JS的内建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,ReferenceError, RegExp,String,SyntaxError,TypeError,URIError53. JS中的换行:\n54. 窗口全屏大小:<script>functionfullScreen(){ this.moveTo(0,0);this.outerWidth=screen.availWidth;this.outerHeight=screen.availH eight;}window.maximize=fullScreen;</script>55. JS中的all代表其下层的全部元素56. JS中的焦点顺序:document.getElementByid("表单元素").tabIndex = 157. innerHTML的值是表单元素的值:如<p id="para">"how are <em>you</em>"</p>,则innerHTML 的值就是:how are <em>you</em>58. innerTEXT的值和上面的一样,只不过不会把<em>这种标记显示出来.59. contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状态.60. isDisabled判断是否为禁止状态.disabled设置禁止状态61. length取得长度,返回整型数值62. addBehavior()是一种JS调用的外部函数文件其扩展名为.htc63. window.focus()使当前的窗口在所有窗口之前.64. blur()指失去焦点.与FOCUS()相反.65. select()指元素为选中状态.66. 防止用户对文本框中输入文本:onfocus="this.blur()"67. 取出该元素在页面中出现的数量:document.all.tags("div(或其它HTML标记符)").length68. JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless()69. 状态栏文字的设置:window.status='文字',默认的状态栏文字设置:window.defaultStatus = '文字.';70. 添加到收藏夹:external.AddFavorite("","Google");71. JS中遇到脚本错误时不做任何操作:window.onerror = doNothing; 指定错误句柄的语法为:window.onerror = handleError;72. JS中指定当前打开窗口的父窗口:window.opener,支持opener.opener...的多重继续.73. JS中的self指的是当前的窗口74. JS中状态栏显示内容:window.status="内容"75. JS中的top指的是框架集中最顶层的框架76. JS中关闭当前的窗口:window.close();77. JS中提出是否确认的框:if(confirm("Are you sure?")){alert("ok");}else{alert("Not Ok");}78. JS中的窗口重定向:window.navigate("");79. JS中的打印:window.print()80. JS中的提示输入框:window.prompt("message","defaultReply");81. JS中的窗口滚动条:window.scroll(x,y)82. JS中的窗口滚动到位置:window.scrollby83. JS中设置时间间隔:setInterval("expr",msecDelay)或setInterval(funcRef,msecDelay)或setTimeout84. JS中的模态显示在IE4+行,在NN中不行:showModalDialog("URL"[,arguments][,features]);85. JS中的退出之前使用的句柄:function verifyClose(){event.returnValue="we really like you and hope you will stay longer.";}} window.onbeforeunload=verifyClose;86. 当窗体第一次调用时使用的文件句柄:onload()87. 当窗体关闭时调用的文件句柄:onunload()88. window.location的属性:protocol(http:),hostname(),port(80),host(:80),pathname("/a/ a.html"),hash("#giantGizmo",指跳转到相应的锚记),href(全部的信息)89. window.location.reload()刷新当前页面.89-1. parent.location.reload()刷新父亲对象(用于框架)89-2. opener.location.reload()刷新父窗口对象(用于单开窗口)89-3. top.location.reload()刷新最顶端对象(用于多开窗口)90. window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的URL)91. document.write()不换行的输出,document.writeln()换行输出92. document.body.noWrap=true;防止链接文字折行.93. 变量名.charAt(第几位),取该变量的第几位的字符.94. "abc".charCodeAt(第几个),返回第几个字符的ASCii码值.95. 字符串连接:string.concat(string2),或用+=进行连接96. 变量.indexOf("字符",起始位置),返回第一个出现的位置(从0开始计算)97. stIndexOf(searchString[,startIndex])最后一次出现的位置.98. string.match(regExpression),判断字符是否匹配.99. string.replace(regExpression,replaceString)替换现有字符串.100. string.split(分隔符)返回一个数组存储值.101. string.substr(start[,length])取从第几位到指定长度的字符串.102. string.toLowerCase()使字符串全部变为小写.103. string.toUpperCase()使全部字符变为大写.104. parseInt(string[,radix(代表进制)])强制转换成整型.105. parseFloat(string[,radix])强制转换成浮点型.106. isNaN(变量):测试是否为数值型.107. 定义常量的关键字:const,定义变量的关键字:var。

JS的数组,string类的定义及基本方法

JS的数组,string类的定义及基本方法

JS的数组,string类的定义及基本⽅法函数:函数在调⽤的时候,会形成⼀个私有作⽤域,内部的变量不会被外⾯访问,这种保护机制叫闭包。

这就意味着函数调⽤完毕,这个函数形成的栈内存会被销毁。

function fn(){var a=12;a++;console.log(a)}fn()----13fn()----13fn()----13但有时候我们不希望他被销毁。

函数归属谁跟它在哪调⽤没有关系,跟在哪定义有关。

function fn(){var a=12;return function(){a++;console.log(a)}}var ss=fn()----function(){a++;console.log(a)}ss()------13ss()------14ss()-------15Fn()调⽤完毕后得到的是⼀个匿名函数,但是这个函数在fn这个作⽤域下定义的,所以这个匿名函数内部的变量在fn作⽤域下查找。

这种写法可以使函数内部的变量不被销毁。

function fun(n,o) {console.log(o)return {fun:function(m){// 1,0return fun(m,n);}};}//var a = fun(0); //{fun:function(m){return fun(m,n)}}//a.fun(1); // fun(1,0) //0//a.fun(2); //fun(2,0) //0//a.fun(3);//fun(3,0) //0//var b = fun(0).fun(1).fun(2).fun(3);//undefined,0,1,2var c = fun(0).fun(1); c.fun(2); c.fun(3);//undefined,0,1,1基类Object的⼦类有Function Array Number Boolean String Date Math RegExp函数数组数字布尔字符串⽇期算数正则都是类。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 内部私有函数<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">//内部私有函数// function a(param){// function b(param1){// return param1+10;// };// return '在a函数体内调用b函数的结果为:'+b(param); // }// document.write(a(5));// document.write(b(1));// function a(param){// var b=function(param1){// return param1+10;// };// return '在a函数体内调用b的结果'+b(param);// }// document.write(a(5));//返回函数的函数//function a(){// alert('aaa');// return function(){// alert('bbb');// };//}////var func=a();////func();//a()();//重写自己的函数//function a(){// alert('aaa');// a=function(){// alert('bbbb');// };//}//a();//a();var a=function(){function setUp(){var setup='doSomeThing';}function doWhat(){alert('要执行的操作');}setUp();return doWhat;}();a();</script></body></html>2 js内置函数<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">//通过Js内置函数构造器创建函数// var func=new Function('a','b','return a+b'); //// alert(typeof func);// alert(func(3,5));// var func1=function(a,b){return a+b};// alert(func1(6,7));//作用域链// var a=1;// function test(){// var b=2;// return a;// }// alert(test());// alert(b);//scope chain// var a=1;// function test(){// var b=2;// function test1(){// var c=3;// alert(a);// alert(b);// alert(c);// return c;// }// test1();// }// test();//词法作用域//function f1(){// var a=12;// return f2();//}//function f2(){// var b=12;// return a;//}//alert(f1());function f1(){var a=1;return f2();}function f2(){var b=3;// alert(b);return a;}alert(f1());var a=55;alert(f1());a=656;alert(f1());</script></body></html>3 闭包<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">//通过闭包突破全局作用域链function f(){var a='king';return function(){return a;}}// alert(a);var test=f();alert(test());</script></body></html>4 return<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript"> // var n;// function f(){// var a='king';// n=function(){// return a;// };// }// f();// alert(n());function f(param){var n=function(){return param;}param++;return n;}var test=f(456);alert(test());</script></body></html>5 参数类型<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">function f1(){var n=1;test=function(){n+=1;};function f2(){alert(n);}return f2;}var res=f1();alert(res());test();alert(res());</script></body></html>6 获取参数<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">var setValue,getValue;(function(){var n=0;getValue=function(){return n;};setValue=function(x){n=x;};})();// alert(n);alert(getValue());setValue(567);alert(getValue());</script></body></html>7 迭代器<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">//迭代器中得应用function test(x){var i=0;return function(){return x[i++];};}var next=test(['a','b','c','d']);alert(next());alert(next());alert(next());alert(next());</script></body></html>8 参数属性<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">// function f(){// var a=[];// var i;// for(i=0;i<3;i++){// a[i]=function(){ // return i;// };// }// return a;// }// var test=f();// alert(test[0]());// alert(test[1]());// alert(test[2]());// function f(){// var a=[];// var i;// for(i=0;i<3;i++){// a[i]=(function(x){// return function(){ // return x;// }// })(i);// }// return a;// }// var test=f();// alert(test[0]());// alert(test[1]());// alert(test[2]());function f(){function test(x){return function(){return x;}}var a=[];var i;for(i=0;i<3;i++){a[i]=test(i);}return a;}var res=f();alert(res[0]());alert(res[1]());alert(res[2]());</script></body></html>。

相关文档
最新文档