
$.fn.searchbox.methods={}意思是向jQuery原型中的searchbox这个对象添加一个叫做
methods的属性,而这个属性本事其实是一个对象。而searchbox表示的是一个函数,在JS中一切皆对象,当然包括函数本身,那么就可以为函数添加属性或者方法。
var a=function()
{
alert(arguments.callee.k)//这个其实就是相当于alert(a.k)
}
a.k=1
a()
不是有个构造函数extend么,可以自行添加方法。如://给对象添加新的方法。
function extend(object, data){
for(var key in data){
object[key] = data[key]
}
return object
}再或者用原生JS给web元素绑定事件
//绑定事件
function addEvent(el,evname,func){
if(el.attachEvent){
el.attachEvent("on"+evname,func)
}else if(el.addEventListener){
el.addEventListener(evname,func,true)
}else{
el["on"+evname]=func
}
}//解除绑定
function delEvent(el,evname,func){
if(el.removeEventListener){
el.removeEventListener(evname,func,false)
}else if(el.detachEvent){
el.detachEvent("on"+evname,func)
}else{
el["on"+evname]=null
}
}
你好!
jQuery中通过extend()用来进行扩展,而又有jQuery.extend()和jQuery.fn.extend()两种用法。
jQuery.extend() 可以理解为jQuery类的扩展;
jQuery.fn.extend() 可以理解为jQuery实例的扩展,类似$("div")这种叫做实例,jQuery插件多基于这种方式扩展;
修改了下你的代码,如下:
<!DOCTYPE HTML><html>
<head>
<meta http-equiv="Content-Type" content="text/html charset=utf-8" />
<script src="./jquery-1.11.1.min.js"></script>
<script>
function test(){
console.log('init')
}
//给jQuery类扩展一个名为obj的对象,将test赋值给它
$.extend({
obj:test
})
//为$.obj也就是前面的对象继续进行扩展,相当于为它追加了一个okay方法
$.extend($.obj,{
'okay':function(){
console.log('okay')
}
})
$(function(){
$("button:eq(0)").click(function(){
$.obj()
})
$("button:eq(1)").click(function(){
$.obj.okay()
})
})
</script>
</head>
<body>
<button>测试test()</button>
<button>测试okay()</button>
</body>
</html>
只是对你的代码稍微做了调整,extend的使用都是基于jQuery对象的,不管是jQuery类或是jQuery实例。
希望对你有帮助!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)