资讯专栏INFORMATION COLUMN

手写一个同时支持函数式和面向对象调用的js库

yearsj / 1796人阅读

摘要:手写一个同时支持的函数式和面向对象两种用法的实现自定义方法开始自定义方法结束函数式调用面向对象调用如何新增方法比如新增一个的方法在自定义方法开始和自定义方法结束之间插入以下代码然后可以通过以下代码调用函数式调用面向对象调用

手写一个同时支持的函数式和面向对象两种用法underscore.js的实现
(function(){
     var _=function(obj){
         if(this instanceof _){return obj;}
         if(!(this instanceof _)){return new _(obj);}
     }
        var root=this;
        root._=_;
    
        _.log=function(){
            console.log(123);
        }
        _.isFunction=function(obj){
            return typeof obj=="function";
        }
        _.function=function(obj){
            var names=[];
            var key;
            for(key in obj){
                if(_.isFunction(obj[key])){
                    names.push(key);
                }
            }
            return names.sort();
        }
        _.each=function(obj,callback){
            var len,i=0;
            if (obj.__proto__.constructor==Array) {
                len=obj.length;
                for(;i
如何新增方法,比如新增一个sayHello的方法
在自定义方法开始和自定义方法结束之间插入以下代码
    _.sayHello=function(){
        console.log("Hello");
    }

然后可以通过以下代码调用

_().sayHello();//函数式调用

var obj = new _();
obj.sayHello();//面向对象调用

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

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

相关文章

  • 精读《sqorn 源码》

    摘要:引言前端精读手写编译器系列介绍了如何利用生成语法树,而还有一些库的作用是根据语法树生成语句。对,有利就有弊,这些库不遵循语法树,但利用简化的对象模型快速生成,使得代码抽象程度得到了提高。 1 引言 前端精读《手写 SQL 编译器系列》 介绍了如何利用 SQL 生成语法树,而还有一些库的作用是根据语法树生成 SQL 语句。 除此之外,还有一种库,是根据编程语言生成 SQL。sqorn 就...

    Youngs 评论0 收藏0
  • 2018年Android面试题含答案--适合中高级(下)

    摘要:生命周期生命周期启动方式有两种,一种是通过方式进行启动,另一种是通过方式进行启动。这种注册方式优先级较高。虚拟机运行的是字节码。一共有三种类型,分别是和。 1、Activity生命周期? onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDetroy() 2、Service生命周期? service ...

    tomlingtm 评论0 收藏0
  • 什么是 Python 编程语言?

    摘要:由设计,作为编程语言的继承者,于年首次发布。表达式表达式是编程语言中的语法实体,可以对其进行评估以确定其值。它是编程语言解释和计算以产生值的常量变量函数和运算符的组合。它在年年年和年被评为年度编程语言,是唯一四次获得该奖项的语言。 ...

    1treeS 评论0 收藏0
  • 面试题里那些各种手写

    摘要:最近准备初级前端面试,发现有很多手写实现什么的,例如什么手写实现,。后面以这道题为引线面试官可能会追问什么是执行上下文的判断,的区别手写一个函数实现斐波那契数列首先拷一个阮神在他教程里的一个写法。 最近准备初级前端面试,发现有很多手写实现什么的,例如什么手写实现bind,promise。手写ajax,手写一些算法。翻阅了很多书籍和博客。 这里做一个总结改进,算是对我后面大概为期一个月找...

    wh469012917 评论0 收藏0

发表评论

0条评论

yearsj

|高级讲师

TA的文章

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