JavaScript高级函数

简介:

一、JavaScript惰性函数   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
function  createXHR(){
     var  xhr =  null ;
     try {
         //FireFox,Opera 8.0+,Safari,IE7+
         xhr =  new  XMLHttpRequest();
     } catch (e){
         //Internet Explorer
         try {
             xhr =  new  ActiveXObject( "Msxml2.XMLHTTP" );
         } catch (e){
             try {
                 xhr =  new  ActiveXObject( "MicroSoft.XMLHTTP" );
             } catch (e){
                 xhr =  null ;
             }
         }
     }
     return  xhr;
}
 
//function handleErr(err){
//  var errXHR = err;
// 
//}
/*惰性函数*/
//第二次生效
function  createXHR(){
     var  xhr =  null ;
     if ( typeof  XMLHttpRequest !=  'undefined' ){
         xhr =  new  XMLHttpRequest();
         createXHR =  function (){
             return  new  XMLHttpRequest();
         }
     } else {
         try {
             xhr =  new  ActiveXObject( "Msxml2.XMLHTTP" );
             createXHR =  function (){
                 return  new  ActiveXObject( "Msxml2.XMLHTTP" );
             }
         } catch (e){
             try {
                 xhr =  new  ActiveXObject( "MicroSoft.XMLHTTP" );
                 createXHR =  function (){
                 return  new  ActiveXObject( "MicroSoft.XMLHTTP" );
             }
             } catch (e){
                 createXHR() =  function (){
                     return  null ;
                 }
             }
         }
     }
     return  xhr;
}


二、函数科里化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function  curry(fn){
     var  args = Array.prototype.slice.call(arguments,1);
     return  function (){
         var  innerArgs = Array.prototype.slice.call(arguments);
         var  finalArgs = args.concat(innerArgs);
         console.log(finalArgs);
         return  fn.apply( this ,finalArgs);
     }
}
function  add(num1,num2,num3){
     return  num1+num2+num3;
}
var  t = curry(add,50)(1,2);
alert(t);


三、级联函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function  classA(){
     this .face =  "" ;
     this .mouse =  "" ;
     this .leg =  "" ;
}
 
classA.prototype = {
     setFace:  function (){
         this .face =  "红扑扑" ;
     }
     setMouse:  function (){
         this .mouse =  "大嘴" ;
     }
     setLeg:  function (){
         this .leg =  "长腿欧巴" ;
     }
};
 
var  person =  new  classA();
person.setFace();
person.setMouse();
person.setLeg();
console.log(person);


本文转自yeleven 51CTO博客,原文链接:http://blog.51cto.com/11317783/1794399



相关文章
|
16天前
|
JavaScript
变量和函数提升(js的问题)
变量和函数提升(js的问题)
|
16天前
|
JavaScript
常见函数的4种类型(js的问题)
常见函数的4种类型(js的问题)
10 0
|
16天前
|
JavaScript
写一个函数将N组<>(包含开始和结束),进行组合,并输出组合结果 (js)
写一个函数将N组<>(包含开始和结束),进行组合,并输出组合结果 (js)
9 0
|
27天前
|
自然语言处理 JavaScript 网络架构
js开发:请解释什么是ES6的箭头函数,以及它与传统函数的区别。
ES6的箭头函数以`=>`定义,简化了函数写法,具有简洁语法和词法作用域的`this`。它无`arguments`对象,不能用作构造函数,不支持`Generator`,且不改变`this`、`super`、`new.target`绑定。适用于简短表达式,常用于异步编程和高阶函数。
17 5
|
1月前
|
JavaScript 前端开发 网络架构
JavaScript 谈谈对箭头函数的理解及其与普通函数的区别。
JavaScript 谈谈对箭头函数的理解及其与普通函数的区别。
17 1
|
1月前
|
JavaScript 前端开发 索引
JavaScript字符串检查:从基础到高级
【2月更文挑战第26天】
24 0
JavaScript字符串检查:从基础到高级
|
2天前
|
缓存 JavaScript 前端开发
js的入口函数,入口函数的作用
js的入口函数,入口函数的作用
12 4
|
17天前
|
存储 前端开发 JavaScript
JavaScript如何封装一些常见的函数来提高工作效率
通过封装这些常见函数,你可以在项目中重复使用,提高代码的复用性和工作效率。这些函数包括获取元素、发起Ajax请求、处理本地存储、日期格式化、定时器等功能,可以在不同场景中减少重复的代码编写。
7 0
JavaScript如何封装一些常见的函数来提高工作效率
|
22天前
|
JavaScript 前端开发 Java
JavaScript高级笔记-coderwhy版本(六)
JavaScript高级笔记-coderwhy版本
71 0
|
22天前
|
JavaScript 前端开发 Java
JavaScript高级笔记-coderwhy版本(一)
JavaScript高级笔记-coderwhy版本
33 0
JavaScript高级笔记-coderwhy版本(一)