博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery.protoype.xxx=function(){}
阅读量:6488 次
发布时间:2019-06-24

本文共 826 字,大约阅读时间需要 2 分钟。

在的init就是fn和prototype的一个方法。想调用只能 jQuery.fn.init()或者是jQuery.prototype.init(),那怎么办呢?你看我们一般都是这样调用fn里面的函数,$().xxx(),那就要想办法在jQuery中返回fn或者是protoype对象,为了达到这个目的实际上return jQuery.prototype就可以实现,但是程序本身还需要执行init这个方法,那就是下边的代码起了作用,把fn在绑定到init的 prototype原型上,这时候就相当月申明了一个jQuery.fn.init类,而且原型指向fn对象,是不是就统一了?这句效果就相当于

jQuery.fn.init=function(selector, context){

    //...................

           return jQuery().find(selectot);

   其他的fn方法

}

     jQuery.fn.init.prototype = jQuery.fn;

fn的init方法和大多数的方法又是返回jQuery数组对象,实现了连写,实际上这里 fn属性的定义完全可以去掉。jQuery.fn.init.prototype = jQuery.fn;可以改成jQuery.fn.init.prototype = jQuery.protoype;效果一样,以后的扩展函数可以写成jQuery.protoype.xxx=function(){}但是为了兼容版本就不得不这样写了。

现在是不是大概有点明白了?这个只是从对象引用的角度分析,因为这样分析更容易接受,所以上边讲的调用都是静态调用,jQuery.fn.init();在静态调用的时候prototype就可以理解成一个静态的属性,如果加了new就不一样了,那就是类之间的继承,先做这样的测试

var obj=new jQuery();obj.init();下篇再说继承关系。

转载地址:http://kiauo.baihongyu.com/

你可能感兴趣的文章
对 sql server 数据库的备份进行加密
查看>>
YY博客园UML时序图之博客模块
查看>>
《深入浅出 Java Concurrency》—锁紧机构(一)Lock与ReentrantLock
查看>>
Nginx+Keepalived主备切换(包含nginx服务停止)
查看>>
【linux高级程序设计】(第十三章)Linux Socket网络编程基础 4
查看>>
android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)...
查看>>
Android IOS WebRTC 音视频开发总结(三九)-- win10升级为何要p2p
查看>>
树莓派的rc.local档(设置开机)
查看>>
chrome打开本地文件目录
查看>>
mysql ODBC 在64位下提示找不到odbc驱动问题
查看>>
MySQL的事务处理及隔离级别
查看>>
一个测试SQL2005数据库连接JSP档
查看>>
JspContext对象与PageContext对象
查看>>
java中间==、equals和hashCode差额
查看>>
TextureView+SurfaceTexture+OpenGL ES来播放视频(一)
查看>>
才一年,H5的发展就成这样了......
查看>>
McBsp接口使用和概念
查看>>
关于WEB Service&WCF&WebApi实现身份验证之WCF篇(1)
查看>>
类是公共,它应该被命名为.java文件声明
查看>>
介绍一个超好用的HICHARTS扩展插件
查看>>