jquery如何使用js的prototype模式开发类级别插件,并可以接受参数配置 50
寻找一种原型开发jquery类级别插件的写法,比如我的插件叫dialogbox,大致的写法如下:varDialogbox=function(options){this.s...
寻找一种原型开发jquery类级别插件的写法,比如我的插件叫dialogbox,大致的写法如下:var Dialogbox = function(options){ this.settings = $.extend({}, Dialogbox.DEFAULTS, options);};Dialogbox.prototype.alert = function(options){//警告框的实现,可以调用传递过来的配置}Dialogbox.DEFAULTS = {//配置};$.dialogbox = new Dialogbox(); // 这里把插件绑定到Dialogbox对象上了,这里我不想new,有什么写法??最后调用是:$.dialogbox.alert({//自定义的配置});一般jquery类级别插件开发是$.pluginName={ foo:function(){}, foo1:function()},问题来了,如果换成使用原型来做,后面的怎么些呢? 我不new可以吗,参考bootstrap的写法是使用function Plugin(options){//这里是return this.each();},都是对象型的开发,我想也使用这种模式来做原型的类级别的开发,怎么写呢,如果还不是太懂,可以看图片我做的示例,帮忙改下回答满意的话可以追财富值哦,我财富值多的很。谢谢
展开
1个回答
展开全部
首先,如果必须需要使用原型(prototype)的话,那么就必须得new一下,否则不实例化哪有原型呢?
如果不使用原型的话。可以使用$.extend直接将对象绑定到jQuery对象上。就可以使用$.pluginName();了。
如果DEFAULTS中保存的参数是一次性的。即单次调用的参数不继承到下次调用。可以直接在对象中做一个属性就可以了。
如果需要继承的话。可以直接在类中声明全局变量赋给window。它将被永久保存下来。除非你重载页面或者手动清除。
如有疑问,可以继续追问。
如果不使用原型的话。可以使用$.extend直接将对象绑定到jQuery对象上。就可以使用$.pluginName();了。
如果DEFAULTS中保存的参数是一次性的。即单次调用的参数不继承到下次调用。可以直接在对象中做一个属性就可以了。
如果需要继承的话。可以直接在类中声明全局变量赋给window。它将被永久保存下来。除非你重载页面或者手动清除。
如有疑问,可以继续追问。
追问
你看我上面传的图片,那个是我现在的写法,实例化那部分能怎么优化,bootstrap插件都是把return this.each插件主体这部分给提取到Plugin函数里,然后在其他地方通过Plugin.call();方式来使用, 我如果也想通过这种模式去写,怎么改??
追答
其实你的这个插件实现的功能很简单,不需要用到实例化和原型,直接做一个对象,合并到jquery里就可以了,概念用得多,不一定就是最好的!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询