`

JS add(1)(2)(3)(4)() 输出10

阅读更多
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script type="text/javascript">
//add(1)(2)(3)(4) 输出10
function add(x){
    var sum = x;
    var tmp = function(y){
        sum = sum + y;
        return tmp;
    };
    tmp.toString = function(){
        return sum;
    };
    return tmp;
}
var result = add(1)(2)(3)(4);
alert(result);

//add(1)(2)(3)(4)() 输出10
//感谢群友(大树)实现这个方法
function add2(x) {
    return function(y) {
        if (typeof y !== 'undefined') {
            x = x + y;
            return arguments.callee;
        } else {
            return x;
        }
    };
}
var result2 = add2(1)(2)(3)(4)();
alert(result2);
</script>
</body>
</html>

  

效果图:

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 44 KB
1
1
分享到:
评论

相关推荐

    js实现类似于add(1)(2)(3)调用方式的方法

    但是,如果希望实现类似add(1)(2)(3)(4)这样的连续调用,上述方法就不适用了。为了实现这一点,我们需要一个更加灵活的方法,能够接收任意数量的参数并返回最终的累加结果。下面是一个更通用的实现: ```javascript...

    js代码-函数颗粒化 实现add(1)(2)(3) 固不固定参数

    标题和描述提到的"实现add(1)(2)(3)"是JavaScript中一种特殊的函数颗粒化技术,通常被称为“柯里化”(Currying)或部分应用函数。柯里化是一种将接受多个参数的函数转换为一系列只接受一个参数的函数的技术。 首先...

    js代码-001面试题--js-实现(5).add(3).minus(2)

    在JavaScript编程语言中,"js代码-001面试题--js-实现(5).add(3).minus(2)"这个题目是常见的链式操作面试题。它涉及到对象方法的连贯调用,以及如何设计一个自定义的链式运算接口。让我们深入探讨这个问题。 首先,...

    cesiumjs瓦片数据 3dtiles

    CesiumJS是一种基于WebGL的开源JavaScript库,它为开发者提供了构建高性能地理空间三维应用程序的能力。通过利用现代浏览器的强大图形处理能力,CesiumJS可以实现在网页上进行复杂的三维地形渲染、模型加载、动态...

    JS:Call方法详解(js_的继承)

    在这个例子中,`sub`函数实际上调用了`add`函数,并传递了参数`3`和`1`。因此,输出结果为`4`。 ##### 2. 模拟继承 JavaScript中的继承机制主要依赖于原型链,但有时候我们可能希望使用类似面向对象语言中的经典...

    js处理浮点算法

    function accAdd(arg1, arg2) { var r1, r2, m; try { r1 = arg1.toString().split('.')[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split('.')[1].length } catch (e) { r2 = 0 } m = Math....

    【JavaScript源代码】如何使用gpu.js改善JavaScript的性能.docx

    2. **分配输出:** 通过设置内核的输出大小,GPU.js能够确保计算结果按照预期的格式返回。 3. **执行计算:** 内核函数被并行执行于GPU上,利用GPU的并行计算能力来加快计算速度。 #### 六、GPU.js的入门实践 为了更...

    JavaScript程序设计ES之扩展运算符共2页.pdf

    // 输出[1, 2, 3, 4, 5, 6] ``` 在对象方面,扩展运算符同样有出色的表现。它可以用于复制对象,但需要注意的是,这只是浅拷贝,对于嵌套的对象或数组,只复制最外层的引用。例如: ```javascript let obj1 = { a...

    javascript 高级程序设计 读书笔记(3)

    // 输出 [2, 4, 6, 8, 10] ``` 模块化是大型应用组织代码的重要手段。在JavaScript中,我们可以使用IIFE(立即调用的函数表达式)来封装代码,防止全局变量污染,或者使用CommonJS(Node.js环境)或ES6的`import`...

    JavaScript视频教程-4.函数与内置对象

    // 输出 1, 2, 3 }); ``` 在JavaScript中,还有一些重要的内置对象,如`Date`对象,用于处理日期和时间: ```javascript let now = new Date(); console.log(now.getFullYear()); // 输出当前年份 console.log(now....

    js算法精度失真问题的解决方案

    function accAdd(arg1, arg2) { var r1, r2, m; try { r1 = arg1.toString().split('.')[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split('.')[1].length } catch (e) { r2 = 0 } m = Math....

    BigDecimal.js.zip

    var sum = bigNum1.add(bigNum2); ``` 或者,进行除法运算并指定精度: ```javascript var quotient = bigNum1.divide(bigNum2, 10, BigDecimal.ROUND_HALF_UP); ``` 此外,BigDecimal.js还支持其他数学运算,如...

    JavaScript语言精粹1

    根据给定的信息,“JavaScript语言精粹1”这一标题与描述,可以推测这是一本关于JavaScript编程语言的基础或高级技巧的书籍。尽管提供的具体内容部分没有直接包含JavaScript相关的技术细节,但我们可以基于这一主题...

    javascript

    1. **CommonJS**:CommonJS是服务器端JavaScript的标准,主要用于Node.js环境中。通过`require()`函数导入模块,`module.exports`或`exports`导出模块。例如: ```javascript // math.js exports.add = function(a, ...

    JsCall方法详解(js的继承).pdf

    在这个例子中,`call`方法的作用是让`add`函数在`sub`的上下文中执行,实际上相当于`add(3, 1)`,因此弹出的结果是`4`。 在面向对象编程中,`call`方法经常用于实现继承。下面的例子展示了如何通过`call`实现简单的...

    js经典使用例子 js经典使用例子

    console.log(add(1, 2)); // 输出 3 ``` 9. **模块系统**:通过`import`和`export`关键字,JavaScript支持模块化开发,便于代码组织和重用。例如: ```javascript // math.js export function add(a, b) { ...

    js 的一些简单的例题

    let arr = [1, 2, 3, 4, 5]; console.log(arr[0]); // 输出 "1" ``` 8. 高级特性 JS的ES6引入了许多新特性,如箭头函数、模板字符串、解构赋值等。例如: ```javascript let add = (x, y) =&gt; x + y; console.log...

    无级分类(无递归)+无级JS联动+树状显示+导航输出+批量移动

    2. **无级JS联动**:JavaScript(JS)联动功能使得当用户在一个分类上操作时,其他相关的分类能够实时更新。例如,添加或删除一个父分类时,其子分类会自动响应变化。这种动态交互提高了用户体验,让用户能够直观地...

Global site tag (gtag.js) - Google Analytics