jQuery原型

JavaScript中的原型对象(以下为示例,有错误。)
JavaScript通过为所有函数绑定一个prototype属性用来指向一个原型对象。此原型对象可以定义类继承、属性和方法
        <Script >
            var jQuery = function(){
                            jQuery.prototype = {//扩展的原型对象
                                
                                }
                        }
        </script>
        更安全的作法是,定义一个属性
        <Script >
            var jQuery.fn = jQuery.prototype = {//扩展的原型对象
                                
                                }
        </script>        
        这里的jQuery.fn相当于jQuery.prototpye的别名。那么
            var $ = jQuery = function(){}
            
        给jQuery添加两个成员
        var $ = jQuery = function (){
                            jQuery.fn = jQuery.prototype = {
                                                    jquery: "1.2.3",    //原型属性
                                                    size:    function(){    //原型方法
                                                                return this.length;
                                                            }
                                        }
                        }
        调用方法:
        正常调用方法为:
            var my$ = new $();//实例化
            alert( my$.jquery );
            alert( my$.size() );
            
        但jQuery却如下:
            $().jquery;
            $().size();
            即,jQuery没有使用new运算符将jQuery类实例化。实际在浏览器使用这段代码会报错。没有实例化,那么
                var $ = jQuery = function(){
                                    return new jQuery();
                                }
            然而,仍然会报错,堆栈溢出。说明有死循环。那么:
            使用一个工厂方法来创建一个实例,并把它放到prototype原型对象中,然后在构造函数中返回这个调用。
                var $ = jQuery = function() {
                                    return jQuery.fn.init();
                                }
                jQuery.fn = jQuery.prototype = {
                                    init: function(){
                                                return this;
                                            },
                                    jquery:"1.2.4",
                                    size: function(){
                                                return this.length;
                                            }
                            }
以上示例还是有错误,它并没有实例化jQuery,那么要如何做?

时间: 2024-08-01 06:17:05

jQuery原型的相关文章

jQuery原型技术分解

jQuery原型技术分解 起源----原型继承 用户过javascript的都会明白,在javascript脚本中到处都是 函数,函数可以归置代码段,把相对独立的功能封闭在一个函数包中.函数也可以实现类,这个类是面向对象编程中最基本的概念,也是最高抽象,定义一个灰就相 当于制作一个模型,然后借助这个模型复制无数的实例. 例如,下面的就可定义最初的jQuery类,类名就是jQuery,你可以把它视为一个函数,函数名是jQuery.那当然也可以把它视为一个对象,对象 名是jQuery.与其也面向对象

jquery源码解析:jQuery原型的方法和属性介绍

上一篇主要讲解了jQuery原型中最重要的方法init.接下来再讲一些比较常用的原型方法和属性 core_slice = [].slice, jQuery.fn = jQuery.prototype = { toArray: function(){ //把jQuery对象转换成原生元素的数组,比如:$("div").toArray(),{0:"div",1:"div"}   ->   ["div","div&q

jquery源码解析:jQuery原型方法init的详解

先来了解几个jQuery方法: <li></li> <li></li> <li></li> $("li") -> this -> jQuery对象 ->    { 0 : "li", 1 : "li", 2 : "li", length : 3 } $("<li>aaa")  的效果跟   $("

六.jQuery源码分析之jQuery原型属性和方法

97 jQuery.fn = jQuery.prototype = { 98 constructor: jQuery, 99 init: function( selector, context, rootjQuery ) { }, 210 selector: "", 213 jquery: "1.7.2", 216 length: 0, 219 size: function() {}, 223 toArray: function() {}, 229 get: fun

jQuery原型方法first,last,eq,slice源码分析

这4个方法中前3个方法很常用大家都见过,但是slice方法可能会以为是数组方法,其实slice也是jQuery的一个原型方法,只不过是底层方法是为其他方法服务的(更具体点是为eq方法服务的),首先还是看下这几个方法前台是怎么使用的: eq 概述  获取第N个元素 参数 一个整数,指示元素的位置,从集合中的最后一个元素开始倒数.(1算起) 示例 参数index描述: //获取匹配的第二个元素 //HTML 代码: <p> This is just a test.</p> <p&

jQuery内核详解与实践读书笔记1:原型技术分解1

一直以来都有研究一下jQuery源代码的想法,但是每次看到jQuery几千行的代码,头就大了,没有一点头绪,也不知道从哪里开始.昨天去图书馆无意间发现了这本<jQuery内核详解和实践>,翻看了一下里面的内容,这正是我寻觅多时剖析jQuery源码的好书. 废话不多说,直入正题吧.第一章介绍了一下jQuery的起步和一些历史故事,没什么重要内容.这里直接进入第二章,jQuery技术解密,从这一章开始就全部是干货了.这一章主要分四部分:jQuery原型技术分解,破解jQuery选择器接口,解析jQ

天猫首页迷思之-jquery实现整个div的懒加载(2)-插件面向对象化-闭包和原型的实例

前文有简单的实现了一个制作懒加载的方法,但其实以方法的形式做插件扩展性不强.那么本文就来用面向对象的方法将其制作成一个真正的插件: 我想要的最终的调用效果是: 1 $(".loading").lazyLoadDiv_cc({ 2 //自定义效果,可不填 3 "beginHeight":400, 4 "loadingBgClass":"loading", 5 "whenToLoad":"someIn

jquery源码;是怎么实现直接调用$()函数原型上的方法的?

1:当我们调用jQuery()方法时:就会先加载初始化函数jQuery.prototype.init()方法;这样一来使用jQuery()函数就会得到初始化函数init()的返回值:执行初始化函数后就能直接调用jQuery()原型上的方法:而init()属于构造器函数:jQuery.prototype.init.prototype=jQuery.prototype;这句话让初始化函数init()这个对象去继承jQuery原型上的对象属性;然后就能直接调用jQuery原型上的方法::这是jquer

掌握jQuery插件开发

在实际开发工作中,总会碰到像滚动,分页,日历等展示效果的业务需求,对于接触过jQuery以及熟悉jQuery使用的人来说,首先想到的肯定是寻找现有的jQuery插件来满足相应的展示需求.目前页面中常用的一些组件,都有多种jQuery插件可供选择,网络上也有很多专门收集jQuery插件的网站.利用jQuery插件确实可以给我们的开发工作带来便捷,但是如果只是会简单使用,而对其中的原理不甚了解,那么在使用过程中碰到问题或者对插件进行定制开发时就会有诸多疑惑.本文的目的就是可以快速了解jQuery插件