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

手写一个同时支持的函数式和面向对象两种用法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();//面向对象调用

你可能感兴趣的:(javascript)