《JavaScript设计模式》——1.9 函数的祖先

    xiaoxiao2024-01-05  171

    本节书摘来自异步社区《JavaScript设计模式》一书中的第1章,第1.9节,作者:张容铭著,更多章节内容可以访问云栖社区“异步社区”公众号查看

    1.9 函数的祖先

    小白回顾着这些从未见过的代码方式内心很激动,小铭见小白对JavaScript如此着迷,于是补充了两句。

    “如果你看过prototype.js的代码,我想你会想到下面的书写方式。”

    “prototype.js是什么?”小白问道。

    “一款JavaScript框架,里面为我们方便地封装了很多方法,它最大的特点就是对源生对象(JavaScript语言为我们提供的对象类,如Function、Array、Object等等)的拓展,比如你想给每一个函数都添加一个检测邮箱的方法就可以这么做。”

    Function.prototype.checkEmail = function(){   // 验证邮箱 }

    “这样你在使用这个方法的时候就比较方便了,如果你习惯函数形式,那么你可以这么做。”

    var f = function(){}; f.checkEmail();

    “如果你习惯类的形式你也可以这么做。”

    var f = new Function(); f.checkEmail();

    “但是你这么做在我们这里是不允许的,因为你污染了原生对象Function,所以别人创建的函数也会被你创建的函数所污染,造成不必要的开销,但你可以抽象出一个统一添加方法的功能方法。”

    Function.prototype.addMethod = function(name, fn){   this[name] = fn; }

    “这样如果你想添加邮箱验证和姓名验证方法你可以这样做。”

    var methods = function(){};或者

    var methods = new Function(); methods.addMethod('checkName', function(){   // 验证姓名 }); methods.addMethod('checkEmail', function(){   // 验证邮箱 }); methods.checkName(); methods.checkEmail(); 相关资源:敏捷开发V1.0.pptx
    最新回复(0)