通过jQuery源码学习javascript(三)
var str = "test"; for(var a in str){console.log(a + ":" + str[ a ]); }
输出结果
这是一个字符串对象,在使用for的时候,会出现上面的情况。
(function(window, undefined){// jquery code })(window);
代码解析:
第一个括号:创建一个匿名函数。
第二个括号:立即执行。
传入window变量原因:
这样设计的好处:创建私有命名空间。函数体内的变量和方法,不会影响全局空间。不会与其他程序的变量发生冲突。
(function(){var_cQuery = window.cQuery,cQuery = function(){return new cQuery.fn.init();};cQuery.fn = cQuery.prototype = {init : function () {return this;}};cQuery.fn.init.prototype = cQuery.fn;cQuery.extend = cQuery.fn.extend = function( obj ) {for (var prop in obj) {this[ prop ] = obj[ prop ];} return this;} cQuery.fn.extend({test : function() {console.log('测试!');} });window.C = window.cQuery = cQuery; })(); // 调用方式 C().test();
好处:1、方便用户快速扩展jQuery框架的功能,不会破坏jQuery框架的原型结构。2、方便管理。
注意:通过prototype扩展的对象,我们必须通过实例化函数来调用(如cQuery().test(),而不能使用cQuery.test())
(function(){var _cQuery = window.cQuery,cQuery = function(){return new cQuery.fn.init();}; cQuery.fn = cQuery.prototype = {init : function () {return this; }};cQuery.param = function(obj) {var prefix, s = [];for ( prefix in obj ) {s[ s.length ] = encodeURIComponent( prefix ) + "=" + encodeURIComponent( obj[ prefix ]);}return s.join( "&" );}cQuery.fn.init.prototype = cQuery.fn;window.C = window.cQuery = cQuery; })();var param = cQuery.param({"name":"chuanshanjia", "age":30}); console.log( param );
输出结果
对象url参数化:有利于结构化,易于维护。如果在url后面加一坨的参数列表,难道看着不眼晕吗?
通过jQuery源码学习javascript(三)相关推荐
- jquery源码学习笔记三:jQuery工厂剖析
jquery源码学习笔记二:jQuery工厂 jquery源码学习笔记一:总体结构 上两篇说过,query的核心是一个jQuery工厂.其代码如下 function( window, noGlobal ...
- jQuery源码学习之Callbacks
jQuery源码学习之Callbacks jQuery的ajax.deferred通过回调实现异步,其实现核心是Callbacks. 使用方法 使用首先要先新建一个实例对象.创建时可以传入参数flag ...
- 基于Qt5.14.2和mingw的Qt源码学习(三) — 元对象系统简介及moc工具是如何保存类属性和方法的
基于Qt5.14.2和mingw的Qt源码学习(三) - 元对象系统简介及moc工具是如何保存类属性和方法的 一.什么是元对象系统 1.元对象系统目的 2.实现元对象系统的关键 3.元对象系统的其他一 ...
- Mybatis源码学习(三)SqlSession详解
前言 上一章节我们学习了SqlSessionFactory的源码,SqlSessionFactory中的方法都是围绕着SqlSession来的.,那么SqlSession又是什么东东呢?这一章节我们就 ...
- jQuery源码学习(1)——addClass
最近比较闲,寻思着学习下jQuery源码,看了好多博客,很多都讲的比较详细.jQuery虽然只有那么200多K,但内容却比较丰富,对于我这样一个js菜鸟,看起来相当吃力.骨头太大,只能化整为零,从简单 ...
- jquery源码学习笔记一:总体结构
练武不练功,到老一场空.计算机也一样. 计算机的功,就是原理.如果程序员只会使用各种函数,各种框架,而不知其原理,顶多熟练工人而已.知其然,更要知其所以然. jquery我们用得很爽,但它究竟咋实现的 ...
- Kubernetes调度器源码学习(三):Preempt抢占机制、调度失败与重试处理
本文基于Kubernetes v1.22.4版本进行源码学习 5.Preempt抢占机制 当高优先级的Pod没有找到合适的节点时,调度器会尝试抢占低优先级的Pod的节点.抢占过程是将低优先级的Pod从 ...
- jQuery源码学习(6)-Sizzle选择器(2)
1.CSS选择器的位置关系: 四种关系:"+" 紧挨着的兄弟关系:">" 父子关系:" " 祖先关系:"~" 之后 ...
- jQuery源码学习(5)-Sizzle选择器(1)
1.常见的选择器: #test表示id为test的DOM节点 .aaron 表示class为aaron的DOM节点 nav>li 表示在nav内部子li的样式,而不是所有的后代元素,只是往下一层 ...
最新文章
- 光电信标灯发光盘的特性电流测试
- Linux查看某个端口是否被占用
- 【Python】推荐20个好用到爆的Pandas函数方法
- 精武风云全线公映,挂马欺诈网站同步上线
- 并行程序设计(MPICH环境配置)win10
- javascript实例_网页空降与抖动
- jQuery选择器的演示
- 指针运算不同于算数运算,不能简单加减
- 网络创新激活西部科技,戴尔2013软件定义网络圆桌会谈的启示
- Dreamweaver/Flash CS4安装后打开时提示此产品的许可已停止工作
- CWE-134: Use of Externally-Controlled Format String(使用外部控制的格式字符串)
- Ensemble查看基因的外显子信息,并根据染色体位点判断是第几号外显子
- php中求解二元一次方程,基于Algebra.js解二元一次方程的实例教程
- cpu功耗排行_笔记本低功耗cpu有哪些 低功耗笔记本cpu排行介绍【图文】
- Android从程序员到架构师之路3
- 基于傅里叶变换的电力测频算法
- SQL数据库基本语句
- 计算机科学引论2答案,计算机科学引论答案.doc
- 被曝欠薪又放长假,600亿科技巨头爆雷了
- Round robin
热门文章
- ReflectionClass与Closure
- 内存查看工具RAMMAP说明
- javascript日历插件
- 一个html5流星雨源码
- [原+转]CSS hack 小技巧 让你的CSS 兼容ff ie6.0 ie7.0
- python反编译exe_实战 Python3.7+64位 Exe 反编译
- 怎么成为日上会员直邮_18个日上直邮问题汇总,可以参考一下哦
- java mysql防重复提交_防止数据重复提交的6种方法(超简单)!
- 17 张程序员壁纸(赶快挑一张吧)
- MySQL索引和SQL调优手册