博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript高级函数
阅读量:6005 次
发布时间:2019-06-20

本文共 1915 字,大约阅读时间需要 6 分钟。

一、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

转载地址:http://fhpmx.baihongyu.com/

你可能感兴趣的文章
2014第11周六
查看>>
空降兵如何管理团队?
查看>>
关于公用标题头的问题(用变量代替)
查看>>
卡卡游戏引擎之快速入门
查看>>
根据实际情况来选择出行方式
查看>>
阿里巴巴首次公开深度学习框架 X-Deep Learning
查看>>
假期连续熬夜!如何让视力始终如一?
查看>>
107岁的奶奶依然精神矍铄,东哥说“奶奶你很靓”
查看>>
坪效是传统超市的5倍以上!京东首家线下生鲜超市7FRESH开业
查看>>
饿了么和口碑收到超30亿美元投资承诺
查看>>
李彦宏:若谷歌重返中国 百度正好真刀真枪PK再赢一次
查看>>
登陆成功率99% 云知声携手平安好医生推声纹登录系统
查看>>
桂台两地交流密切 2018年人员往来118万人次
查看>>
天津大众冰雪季拉开帷幕 市民可免费体验冰雪项目
查看>>
投服中心:ST圣莱虚假陈述损害赔偿案获法院受理
查看>>
Python|每个程序员都应该读的非编程的8本书
查看>>
熊市不赚钱?不存在的!
查看>>
区块链每日快讯(0123)
查看>>
小米MIUI9泄密!将会引入分屏和画中画两个功能
查看>>
还原论方法无法解开意识之谜,理解意识需要整体考虑
查看>>