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