HTML5技术

前端代码合集 - web前端开发博客(3)

字号+ 作者:H5之家 来源:H5之家 2017-10-19 12:01 我要评论( )

object [ name ] = function () { if ( fn . length === arguments . length ) { return fn . apply ( this , arguments ); } else if ( typeof old === 'function' ) { return old . apply ( this , arguments );

   object[name] = function () {

       if (fn.length === arguments.length) {

           return fn.apply(this, arguments);

       } else if (typeof old === 'function') {

           return old.apply(this, arguments);

       }

   }

}

 

addMethod(people, "find", function () {

   return this.values;

});

 

addMethod(people, "find", function (firstName) {

   var ret = [];

   for (var i = 0; i < this.values.length; i++) {

       if (this.values[i].indexOf(firstName) === 0) {

           ret.push(this.values[i]);

       }

   }

   return ret;

});

 

addMethod(people, "find", function (firstName, lastName) {

   var ret = [];

   for (var i = 0; i < this.values.length; i++) {

       if (this.values[i] === (firstName + ' ' + lastName)) {

           ret.push(this.values[i]);

       }

   }

   return ret;

});

 

console.log(people.find());

console.log(people.find("Sam"));

console.log(people.find("Dean Edwards"));

JS跨浏览器绑定事件函数

常规实现方法

//跨浏览器添加事件

function addHandler(target, eventType, handler) {

   //检测浏览器类型,并且重写addHandler方法

   if (target.addEventListener) {

       addHandler = function (target, eventType, handler) {

           target.addEventListener(eventType, handler, false);

       }

   } else { //IE

       addHandler = function (target, eventType, handler) {

           target.attachEvent("on" + eventType, handler);

       }

   }

 

   //调用新的函数

   addHandler(target, eventType, handler);

}

 

//跨浏览器移除事件

function removeHandler(target, eventType, handler) {

   //检测浏览器类型,并且重写addHandler方法

   if (target.addEventListener) {

       removeHandler = function (target, eventType, handler) {

           target.removeEventListener(eventType, handler, false);

       }

   } else { //IE

       removeHandler = function (target, eventType, handler) {

           target.detachEvent("on", eventType, handler);

       }

   }

 

   target.detachEvent("on" + eventType, handler);

}

优化方法

//绑定事件

var addHandler = document.body.addEventListener ?

   function (target, eventType, handler) {//DOM2

       target.addEventListener(eventType, handler, false);

   } :

   function (target, eventType, handler) {//IE

       target.attachEvent("on" + eventType, handler);

   };

 

//移除事件

var removeHandler = document.body.removeEventListener ?

   function (target, eventType, handler) {

       target.removeEventListener(eventType, handler, false);

 

   } :

   function (target, eventType, handler) {

       target.detachEvent("on" + eventType, handler);

   };

JS单体模式

var shoppingCar = (function () {

   //这个是由购物车构造器所创建的实例

   var instance;

 

   //购物车的构造器函数 

   function Trolley() {

       this.date = new Date().getDate();//实例属性,当前日期

   }

 

   //原型属性,一个返回当前日期的方法

   Trolley.prototype.getDate = function () {

       return this.date;

   };

 

   //暴露出去的公共API

   return function () {

       //如果实例不存在,那么就调用Trolley构造器实例化一个

       if (!instance) {

           instance = new Trolley();

       }

 

       //将实例返回外部

       return instance;

   }

}());

 

var a = new shoppingCar();

var b = new shoppingCar();

console.log(a === b);//true

使用prototype属性定义的对象方法

var dom = function () {};

 

dom.Show = function () {

   alert("Show Message");

};

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 客户懂点代码是最致命的毒药 - 郎中令

    客户懂点代码是最致命的毒药 - 郎中令

    2017-10-19 10:03

  • HTTP错误代码大全 - 张大哒

    HTTP错误代码大全 - 张大哒

    2017-10-18 10:01

  • 《移动Web前端高效开发实战》笔记4--打造单页应用SPA - 更爱Web-APP

    《移动Web前端高效开发实战》笔记4--打造单页应用SPA - 更爱Web-APP

    2017-10-12 09:00

  • windows server 2008使用nginx转发API异常解决办法 - 前端阿小

    windows server 2008使用nginx转发API异常解决办法 - 前端阿小

    2017-10-09 18:02

网友点评