-
首先,要解决无new,拿么只能在函数里边new,但是new自己容易出现无限递归自己。那么就要想办法,不能new 自己,那能不能new别人,然后让这个人拥有和自己一样的属性和方法,只是换了个名字而已,当然是可以的。如是就有了new ajQuery.fn.init( selector ). 在init()方法里返回this,然后将init.prototype=ajQuery.prototype,这样,init()返回的this 就拥有了ajQuery所有的属性和方法。绕了一个圈,目的就为了不new自己也能得到和自己拥有相同属性和方法的实例对象。 理解:1.$(),jQuery()是执行一个函数,$和jQuery是函数名称,这个函数返回的是一个对象,所以里面是一个new表达式,但是名字不能是自己,否则无限循环。2.既然不是自己,其实可以理解为jQuery()返回的不是jQuery对象,而是jQuery.fn.init(一个名字而已)对象。3.但是为了统一和方法/属性的共用(理解原型链),jQUuery这样处理,jQuery.fn.init.prototype = jQuery.prototype. <script type="text/javascript"> //常见写法 var $$ = ajQuery = function(selector) { this.selector = selector; return this } ajQuery.fn = ajQuery.prototype = { selectorName:function(){ return this.selector; }, constructor: ajQuery } var a = new $$('aaa'); //实例化 //得到选择器名字 //aaa $("#test").html( a.selectorName() ) </script> 通过new操作符构建一个对象,一般经过四步: A.创建一个新对象 B.将构造函数的作用域赋给新对象(所以this就指向了这个新对象) C.执行构造函数中的代码 D.返回这个新对象 最后一点就说明了,我们只要返回一个新对象即可查看全部
-
JavaScript,JScript,ActionScript等脚本语言都是基于ECMAScript标准实现的,由于ECMAScript中是没有类的概念,因此JS不能像C++或Java等面向对象语言以"class"关键字声明和定义类,但JS巧妙地以匿名函数的方式声明"类",如: function ajQuery() { this.name = 'jQuery'; this.sayName = function(){ return this.name } var a = new ajQuery()查看全部
-
刚刚说错了,应该是例子三中,$( "#t" ).text( n + (n === 1 ? " is" : " are") + " checked!" )中的问号加冒号的写法作用是什么?查看全部
-
命名函数表达式不会预先提升。 ajQuery2(); var ajQuery2 = function(){ show('ajQuery2') } 普通函数表达式可以预先提升。下面可以 ajQuery1(); function ajQuery1(){ show('ajQuery1') }查看全部
-
new操作符主要是把原型链跟实例的this关联起来,这才是最关键的一点,所以我们如果需要原型链就必须要new操作符来进行处理。否则this则变成window对象了。查看全部
-
看不懂查看全部
-
若是沒有加上this instaceof aQuery,則this為window,反之為aQuery查看全部
-
$.data( element, key, value )可以对DOM元素附加任何类型的数据,用来在元素上存放数据也就平时所说的数据缓存,返回jQuery对象查看全部
-
this,function(){} 这个逗号前边是第一个参数,逗号后边是第二个参数,就是factory,同时也是jQuery的主题查看全部
-
ddd查看全部
-
JQ源码-memory 这节很值得学习查看全部
-
Nfncn xnxmzz查看全部
-
核心方法 回调系统 异步队列 数据缓存 队列操作 选择器引 属性操作 节点遍历 文档处理 样式操作 属性操作 事件体系 AJAX交互 动画引擎查看全部
-
我理解意思是查找对象时,若当前对象使用遍历方法如:find,就会把前对象传给find后对象的prevObject属性。 通过一层一层对象组成的对象栈,jquery通过使用end方法,访问当前对象prevObject属性来回溯到find前对象。(jQuery对象都有:context、selector和prevObject)查看全部
-
3查看全部
举报
0/150
提交
取消