Object Function

万物皆对象

曾经尝试过写类似于 jQuery 的库1,后来失败了,因为当时不明白Object Function 的概念

最近,才发现有这么个东西


function func(arg){ var method = { 'methodTest': function (){ hCon.log('This is methodText: '+arg); } }; return method; } func.objMethod = function (){ hCon.log( 'this is Object Function' ); }; func('哦是吗').methodTest(); func.objMethod();

是不是有点像jQuery了?没错,jQuery 也是这样的

function createObjFunc(){
  function method(){
    this.theAlert = function (str){
        return alert(str);
    }
  }
  function domMethod(ele){
    this.setText = function( str ){
        for ( var i in Object.keys(ele) ){
            if ( ele[i].innerText !== undefined ){
                ele[i].innerText = str;
            }else{
                ele[i].textContent = str;
            }
        }
    };
  }

  function func(str){
    if ( typeof str === 'string' )
        var domArr = document.querySelector(str);
    else
        var domArr = [str];
    domArr.__proto__ = new domMethod(domArr);
    return domArr;
  }
  func.__proto__ = new method;
  return func;
}

var $ = createObjFunc();

$.theAlert ('哦是吗');

$( hCon.log('哦是吗') ).setText('对,没错');

话说回来

所以呢,我还能说些什么呢?

Doremy Sweet


  1. 类似 $.ajax / $.post 和 $('body') 之类的 ↩︎