jQuery技术

读jquery.cookie.js源码学到的几个技巧

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

读jquery.cookie.js源码学到的几个技巧,一、兼容AMD、CommonJS和普通JS的写法(function (factory) {if (typeof define ===

正文

一、兼容AMD、CommonJS和普通JS的写法

(function (factory) { if (typeof define === 'function' && define.amd) { // AMD define(['jquery'], factory); } else if (typeof exports === 'object') { // CommonJS factory(require('jquery')); } else { // Browser globals factory(jQuery); } }(function ($) { console.log('请允许我偷个懒,省略这个函数里的一堆代码'); }));

看到这里,其实自定义回调函数的写法也就出来了,但是为了凑出一篇形式上像样的博文,请允许我放到第三节来说回调函数(哎!别扔鸡蛋!)。

二、使用join方法把数组转为字符串

以前见过join方法,但是一直没用过,不熟,不知道它到底是干啥的,也不知道为啥要用它,直到看到下面这段代码:

return (document.cookie = [ encode(key), '=', stringifyCookieValue(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : '' ].join(''));

在这个地方,这个document.cookie的值必须要是字符串,而且格式是这样的变态和销魂:

//格式: name=value; expires=expiration_time; path=domain_path;domain=domain_name;secure //举个栗子: name=value;expires=Mon,22-Jan-07 07:10:24 GMT;domain=.wrox.com; path=/;secure

所以document.cookie的值需要通过很多三目运算计算后来获得,如果使用字符串来不停的“加等于”完全做不到,而javascript的数组里是可以放表达式的啊,计算出的结果会成为数组的一个项的值,最后用join('')转成字符串。

所以,以后遇到需要为一个变量设置一个字符串值,并且这个值是由很多个子值连接起来的,并且子值还需要根据情况做变化的情景时,果断的使用数组+三目运算符+join('')的组合吧!

三、javascript自定义回调函数的写法

用过jQuery的animation动画方法的人,对于那个方法里的回调函数应该都会觉得好用(大神手下留情,毕竟凑个开头不容易)。

那么我们自己能不能实现高大上的回调函数呢?

废话不说,直接上代码吧:

(function(fa){ if(0){ console.log('没有执行回调函数') }else{ fa(); } }(function fss(){console.log('执行了回调函数的输出')})) foo(fa){ if(0){ console.log('没有执行回调函数'); }else{ fa(); } }; function fss(){ console.log('执行了回调函数的输出'); } foo(fss); //执行了回调函数的输出

有兴趣的童鞋可以复制代码放到chrome的console控制台里去执行一下。

 

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

相关文章
  • jQuery的noConflict以及插件扩展

    jQuery的noConflict以及插件扩展

    2017-06-30 11:00

  • 韩顺平jquery视频!j2ee的学习顺序

    韩顺平jquery视频!j2ee的学习顺序

    2017-06-28 18:00

  • 大量Javascript/JQuery学习资料pdf电子书下载

    大量Javascript/JQuery学习资料pdf电子书下载

    2017-06-28 17:02

  • jquery多级手风琴插件accordion.js

    jquery多级手风琴插件accordion.js

    2017-06-28 17:01

网友点评