标签:编程 argument 这一 arguments user 添加 amp cat 第一个
前言:
本篇主要是介绍 JavaScript使用函数的高级方法,函数是JavaSCript中最有趣的部分,利用Function特性可以编写出很多非常有意思的代码,本篇主要包括:函数回调,高阶函数以及函数柯里化。
1 setTimeout(function(){ 2 console.log("hello"); 3 },2000) 4 // ... 大概2s之后(实际上大于2s) 5 // => hello
创建一个文件 input.txt ,内容如下:
“Hello World”
创建 main.js 文件, 代码如下:
1 var fs = require("fs"); 2 // 封装一个readFile函数 3 var readFile=function(filename,callback){ 4 fs.readFile(‘input.txt‘, function (err, data) { 5 if (err) return callback(err); 6 return callback(null,data); 7 }); 8 } 9 //调用 10 readFile(‘input.txt‘,function(err,data){ 11 if(err) 12 handle(err); 13 else 14 handle(data); 15 }
1 $.get( "example.php", function() { 2 alert( "success" ); 3 }) 4 .done(function() { 5 alert( "second success" ); 6 }) 7 .fail(function() { 8 alert( "error" ); 9 }) 10 .always(function() { 11 alert( "finished" ); 12 });
1 var mysql = require(‘mysql‘); 2 var pool = mysql.createPool({ 3 // 登录数据库的配置 4 }); 5 function addUser(param,callback) { 6 pool.getConnection(function(err, connection) { 7 if(err) return callback(err); 8 var $sql="INSERT INTO user(id, password) VALUES(?,?)"; 9 connection.query( $sql, [param.id, param.password],function(err, result) { 10 if(err) 11 return callback(err); 12 else 13 connection.release(); 14 return callback(null,result); 15 }); 16 }); 17 }
1 function makeAdder(addVal){ 2 return function(arg){ 3 return addVal+arg; 4 } 5 } 6 var add2=makeAdder(2); 7 var a=add2(10) 8 console.log(a); 9 // => 12
1 function curry(fn){ 2 var args=[].slice.call(arguments,1); 3 return function(){ 4 var innerArgs=[].slice.call(arguments); 5 var finalArgs=args.concat(innerArgs); 6 return fn.apply(null,finalArgs); 7 } 8 }
1 function add(){ 2 var args=Array.prototype.slice.call(arguments); 3 return args.reduce(function(prev,next){ 4 return prev+next; 5 }); 6 }
1 var curryAdd=curry(add); 2 var result=curryAdd(1,2,3); 3 console.log(result); 4 // => 6 5 var curryAdd2=curry(add,2); 6 var result=curryAdd2(2,3); 7 console.log(result); 8 // => 7 9 两种方式都可以,第二个函数可以代表一个 加2函数
标签:编程 argument 这一 arguments user 添加 amp cat 第一个
原文地址:http://www.cnblogs.com/kasmine/p/6349400.html