资讯专栏INFORMATION COLUMN

javascript 的工具函数

trilever / 871人阅读

define(function () {
    var now = +new Date();
    var util = {};
    
 
    util.guid = function () {
        return "e" + now++;
    };
    
   
    util.noop = function () {};
    
    var dontEnumBug = !(({ toString: 1 }).propertyIsEnumerable("toString"));
    
    // type 子类 superType 父类
    util.inherits = function (type, superType) {
        var Empty = function () {};
        Empty.prototype = superType.prototype;
        var proto = new Empty();
    
        var originalPrototype = type.prototype;
        type.prototype = proto;
    
        for (var key in originalPrototype) {
            proto[key] = originalPrototype[key];
        }
        if (dontEnumBug) {
            // 其实还有好多其它的,但应该不会撞上吧(╯‵□′)╯︵┻━┻
            if (originalPrototype.hasOwnProperty("toString")) {
                proto.toString = originalPrototype.toString;
            }
            if (originalPrototype.hasOwnProperty("valueOf")) {
                proto.valueOf = originalPrototype.valueOf;
            }
        }
        type.prototype.constructor = type;
    
        return type;
    };
    
    util.parseJSON = function (text) {
        if (!text) {
            return undefined;
        }
    
        if (window.JSON && typeof JSON.parse === "function") {
            return JSON.parse(text);
        }
        else {
            /* jshint evil: true */
            return new Function("return (" + text + ");")();
        }
    };
    
    var whitespace = /(^[s	xa0u3000]+)|([u3000xa0s	]+$)/g;
    
    util.trim = function (source) {
        return source.replace(whitespace, "");
    };
    
    return util;
});

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79092.html

相关文章

  • JavaScript 是如何工作:解析、抽象语法树(AST)+ 提升编译速度5个技巧

    摘要:无论你使用的是解释型语言还是编译型语言,都有一个共同的部分将源代码作为纯文本解析为抽象语法树的数据结构。和抽象语法树相对的是具体语法树,通常称作分析树。这是引入字节码缓存的原因。 这是专门探索 JavaScript 及其所构建的组件的系列文章的第 14 篇。 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 如果你错过了前面的章节,可以在这里找到它们: JavaS...

    raoyi 评论0 收藏0
  • JavaScript 工作原理之十四-解析,语法抽象树及最小化解析时间 5 条小技巧

    摘要:事实是只是部分语言的不同表示法。基于这些,解析器会进行立即或者懒解析。然而,解析器做了完全不相关的额外无用功即解析函数。这里不解析函数,该函数声明了却没有指出其用途。所以之前的例子,解析器实际上 原文请查阅这里,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland。 本系列持续更新中,Github 地址请查阅这里。 这是 JavaScript 工作原理的第十四章。 概...

    ZweiZhao 评论0 收藏0
  • JavaScript 工作原理之十四-解析,语法抽象树及最小化解析时间 5 条小技巧

    摘要:事实是只是部分语言的不同表示法。基于这些,解析器会进行立即或者懒解析。然而,解析器做了完全不相关的额外无用功即解析函数。这里不解析函数,该函数声明了却没有指出其用途。所以之前的例子,解析器实际上 原文请查阅这里,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland。 本系列持续更新中,Github 地址请查阅这里。 这是 JavaScript 工作原理的第十四章。 概...

    xuxueli 评论0 收藏0
  • JavaScript 工作原理之十四-解析,语法抽象树及最小化解析时间 5 条小技巧

    摘要:事实是只是部分语言的不同表示法。基于这些,解析器会进行立即或者懒解析。然而,解析器做了完全不相关的额外无用功即解析函数。这里不解析函数,该函数声明了却没有指出其用途。所以之前的例子,解析器实际上 原文请查阅这里,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland。 本系列持续更新中,Github 地址请查阅这里。 这是 JavaScript 工作原理的第十四章。 概...

    jsliang 评论0 收藏0
  • 来!我们一起来从头开始构建自己JavaScript模块化工具

    摘要:能达到一个积木块模块的要求。接下来我们将改进它。结尾到此,我们自己构建了一个很实用的模块化工具,项目的源码在这里,喜欢的话,给个。 前言 希望编写程序能像玩积木一样,首先规划要产出怎样的作品,然后在积木堆中挑选合适的积木块,最后一组合就完工了。 于是JavaScript需要类似这样模块化,每个模块都隐藏内部细节并且对外暴露接口,再处理好模块之间的依赖关系,就可以达到玩积木的效果了。 虽...

    AaronYuan 评论0 收藏0

发表评论

0条评论

trilever

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<