js实现类似于add(1)(2)(3)调用方式的方法
var add = function(a){
return function(b){
return function(c){
return a+b+c;
};
};
};
add(1)(2)(3); //6
没错!那要是add(1)(2)(3)(4) 这样4个调用呢,那这个肯定不适用了。
这种就是类似于执行一个函数返回函数自身值:
function add(x) {
var sum = x;
var tmp = function (y) {
sum = sum + y;
return tmp;
};
tmp.toString = function () {
return sum;
};
return tmp;
}
console.log(add(1)(2)(3)); //6
console.log(add(1)(2)(3)(4)); //10
但是在计算完成后还是返回了tmp这个函数,这样就获取不到计算的结果了,我们需要的结果是一个计算的数字那么怎么办呢,首先要知道JavaScript中,打印和相加计算,会分别调用toString或valueOf函数,所以我们重写tmp的toString和valueOf方法,返回sum的值;
以上就是本文的全部内容了,希望大家能够喜欢。
相关推荐
-
JavaScript 模仿vbs中的 DateAdd() 函数的代码
项目中需要用到日历,.net的日历控件又太重,只好用js写一个,日历的核心函数是 DateAdd(),编写过程中发现 js 里面操作时间比想象中的繁琐,不像vbscript中的可以轻松地dateadd,后来才想到用 setFullYear().setDate()等内置函数,可以拼合一个js版的 dateadd() 来,代码如下: 复制代码 代码如下: function DateAdd(interval,number,date){ // date 可以是时间对象也可以是字符串,如果是后者,形式必须
-
jquery中.add()的使用分析
add() 将元素添加到匹配元素的集合中.这是jquery参考手册上的表述.但其提供的例子链接错误,因此没有对add()的实例说明.这里就提供几个例子,以便更好的掌握add()的用法. 例一 复制代码 代码如下: <!DOCTYPE html><html><head><style>div { width:60px; height:60px; margin:10px; float:left; }p { clear:left; font-weight:bold;
-
模拟SQLSERVER的两个函数:dateadd(),datediff()
<?php//文件名:date.inc.php3//在使用这两个函数前,要先将日期或日期时间转换成timestamp类型.//如://$today=mktime(0,0,0,date("m"),date("d"),date("Y")); /****模拟sqlserver中的dateadd函数*******$part 类型:string取值范围:year,month,day,hour,min,sec表示:要增加的日期的哪个部分$n 类型:数值
-
jQuery中add()方法用法实例
本文实例讲述了jQuery中add()方法用法.分享给大家供大家参考.具体分析如下: 此函数在匹配元素中添加与表达式匹配的元素. add()函数返回的结果将始终以元素在HTML文档中出现的顺序来排序,而不再是简单的添加. 语法: 语法一: 复制代码 代码如下: $(selector).add(expr,context) 参数 描述 expr 可选.用于匹配元素的选择器字符串. context 可选.作为待查找的 DOM 元素集.文档或 jQuery 对象. 实例: 实例一: 将span元素添加的
-
js实现类似于add(1)(2)(3)调用方式的方法
复制代码 代码如下: var add = function(a){ return function(b){ return function(c){ return a+b+c; }; }; }; add(1)(2)(3); //6 没错!那要是add(1)(2)(3)(4) 这样4个调用呢,那这个肯定不适用了. 这种就是类似于执行一个函数返回函数自身值: 复制代码 代码如下: function add(x) { var
-
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
在这篇文章中,我们将学习正确使用Node.js调用系统命令的方法,以避免常见的命令行注入漏洞. 我们经常使用的调用命令的方法是最简单的child_process.exec.它有很一个简单的使用模式;通过传入一段字符串命令,并把一个错误或命令处理结果回传至回调函数中. 这里是你通过child_process.exec调用系统命令一个非常典型的例子. 复制代码 代码如下: child_process.exec('ls', function (err, data) { console.log(
-
js中匿名函数的创建与调用方法分析
本文实例分析了js中匿名函数的创建与调用方法.分享给大家供大家参考.具体实现方法如下: 匿名函数就是没有名字的函数了,也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数.最经常用作回调函数(callback)参数的值,很多新手朋友对于匿名函数不了解.这里就来分析一下. function 函数名(参数列表){函数体;} 如果是创建匿名函数,那就应该是: function(){函数体;} 因为是匿名函数,所以一般也不会有参数传给他. 为什么要创建匿名函数呢?在什么情况下会使用到匿
-
原生js jquery ajax请求以及jsonp的调用方法
ajax 是用来处理前后端交互的技术,可以改善用户体验,其本质是 XMLHttpRequest,异步访问服务器并发送请求数据,服务器返回响应的数据,以页面无刷新的效果改变页面中的局部内容 同步:任务一个一个的执行,只有前面的任务执行完才会执行下一个任务,如果前面的任务是耗时操作,则需要一直等待 异步:多条任务并发执行,也就是一个任务的开启,不需要等待其他任务执行结束,效率较高 ajax的语言载体是JavaScript,最大的特点是页面不刷新 1.获取ajax对象 主流浏览器获取方式:火狐.谷歌.
-
js实现iframe跨页面调用函数的方法
本文实例讲述了js实现iframe跨页面调用函数的方法.分享给大家供大家参考.具体实现方法如下: 在项目中难免会遇到这样一个问题就是页面引入了IFrame并且需要父页面调用子页面函数或者子页面需要调用父页面函数.比如说:现在有两个页面parent.html和child.html.其中parent.html中含有IFrame并且IFrame指向child.html.现在需要在parent.html/child.html中调用child.html/parent.html的一个js方法. 具体的代码实
-
js实现同一页面可多次调用的图片幻灯切换效果
本文实例讲述了js实现同一页面可多次调用的图片幻灯切换效果.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/x
-
浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
在Javascript定义一个函数一般有如下三种方式: 函数关键字(function)语句: function fnMethodName(x){alert(x);} 函数字面量(Function Literals): var fnMethodName = function(x){alert(x);} Function()构造函数: var fnMethodName = new Function('x','alert(x);') // 由Function构造函数的参数个数可变.最后一个参数写函数体
-
js调用后台、后台调用前台等方法总结
js调用后台,后台调用前台等方法总结 1. javaScript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入Button1_Click中; 复制代码 代码如下: protected void Button1_Click(object sender, EventArgs e) { this.TextBox1.Text = "voodooer"; } 2.在前台可以这样调用: 复制代码 代码如下: <input type="but
-
Struts2学习笔记(3)-DMI动态调用方式
什么是DMI?DMI即所谓的动态方法调用. Action在执行的时候并不一定要执行execute方法,可以在配置文件中配置Action的时候用method=来指定执行哪个方法,也可以在url地址中动态指定(动态方法调用DMI). 第一种方式,在struts.xml中对Action添加method: 复制代码 代码如下: <struts> <constant name="struts.devMode" value="true" />
-
jQuery AJAX实现调用页面后台方法
本文实例为大家分享了jQuery AJAX调用页面后台方法,供大家参考,具体内容如下 1.新建demo.aspx页面. 2.首先在该页面的后台文件demos.aspx.cs中添加引用. using System.Web.Services; 1).无参数的方法调用. 大家注意了,这个版本不能低于.net framework 2.0.2.0已下不支持的. 后台代码: [WebMethod] public static string SayHello() { return "Hello Ajax!&q
随机推荐
- ASP.NET网站使用Kindeditor富文本编辑器配置步骤
- UEditor编辑文章出现多余空行问题的解决办法
- Linux 中的 Openssl命令及实例代码
- Extjs单独定义各组件的实例代码
- 权限问题导致Nginx 403 Forbidden错误的解决方法
- DOS 概述及入门
- sftp和ftp 根据配置远程服务器地址下载文件到当前服务
- php遍历类中包含的所有元素的方法
- MySQL 数据库的临时文件究竟储存在哪里
- vue 请求后台数据的实例代码
- 几乎被设计师遗忘了的标签fieldset legend
- JavaScript 浏览器验证代码(来自discuz)
- java使用JNA(Java Native Access)调用dll的方法
- EasyUI的DataGrid每行数据添加操作按钮的实现代码
- js 操作符汇总
- C语言实现电子邮件地址验证程序
- Spring Boot使用Druid和监控配置方法
- Android之带group指示器的ExpandableListView(自写)
- Android 显示和隐藏输入法实现代码
- Android ListView控件使用方法