首页 > 软件操作教程 > 编程开发 > JavaScript
题目内容

JavaScript 徧函数

题目答案

■知识点

    徧函数是函数柯里化运算的一种特定应用场景。它是把一个函数的某些参数先固化,也就是设置默认值,返回一个新的函数,在新函数中继续接收剩余参数,这样调用这个新函数会更简单。

■实例设计

【示例1】下面是一个类型检测函数,共接收两个参数:第1个参数表示类型字符串,第2个参数表示检测的数据。

var isType=function(type, obj){

    return Object.prototype.toString.call(obj)=='[object ' + type+ ']';

}

该函数包含两个设置参数,使用时比较烦琐。一般按如下方式进行设计:

var isString=function(obj){

    return Object.prototype.toString.call(obj)=='[object String]';

};

var isFunction=function(obj){

    return Object.prototype.toString.call(obj)=='[object Function]';

};

函数接收的参数单一,检测的功能也单一和明确,这样更方便在表达式运算中有针对性的调用。下面对isType()函数进行扁平化设计,代码如下:

var isType=function (type) { //徧函数

    return function(obj){

        return Object.prototype•toString.call(obj)==’ [object ' + type+ ']';

    }

}

然后根据徧函数获取不同类型检测函数:

var isString = isType("String"); //专一功能检测函数,检测字符串

var isFunction = isType("Function"); //专一功能检测函数,检测函数

应用代码:

console.log( isString("12"));         //true

console.log( isFunction(function(){})); //true

console.log( isFunction( {} ));         //false

【示例2】下面的示例设计一个wmp()徧函数,该函数的主要功能是产生一个HTML包裹函数,即样式标签。

function wrap(tag) {

    var stag = '<' + tag + '>';

    var etag = '</' + tag.replace(/s.*/, '') + '>';

    return function(x) {

        return stag + x + etag;

    }

}

var b = wrap('b'); 

document.write (b ('粗体字'));

var i = wrap('i'); 

document.write (i ('斜体字')); 

var u = wrap(1u1); 

document.write (u ('下划线字'));

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

软件操作 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

相关视频试题

最需教育客户端 软件问题一手掌握

去 App Store 免费下载 iOS 客户端