test partial application : partial « Mochkit « JavaScript DHTML






test partial application

 
<!--
MochiKit is dual-licensed software.  It is available under the terms of the
MIT License, or the Academic Free License version 2.1.  The full text of
each license is included below.
-->

<!-- Code revised from MochiKit demo code -->

<html>
<head>
    <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Base.js"></script>
    <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Iter.js"></script>
    <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/DOM.js"></script>
    <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Style.js"></script>
    <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Logging.js"></script>
    <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Iter.js"></script>
</head>
<body>

<pre id="test">
<script type="text/javascript">

    var a = [];
    var func = function (a, b) {
        if (arguments.length != 2) {
            return "bad args";
        } else {
            return this.value + a + b;
        }
    };
    var self = {"value": 1, "func": func};
    var self2 = {"value": 2};
    alert( self.func(2, 3), 6, "setup for test is correct" );
    self.funcTwo = partial(self.func, 2);
    alert( self.funcTwo(3), 6, "partial application works" );
    alert( self.funcTwo(3), 6, "partial application works still" );
    alert( bind(self.funcTwo, self2)(3), 7, "rebinding partial works" );
    self.funcTwo = bind(bind(self.funcTwo, self2), null);
    alert( self.funcTwo(3), 6, "re-unbinding partial application works" );

</script>
</pre>
</body>
</html>

   
  








Related examples in the same category