Js_封装JQ库为插件

时间:2023-03-10 04:40:12
Js_封装JQ库为插件
//在jQuery匿名函数中,采用jQuery.extend();方法创建jQuery插件
//在jQuery匿名函数中, 采用对象.属性 = 函数的方式创建jQuery插件
(function ($) {
jQuery.extend({
jia: function (a, b) {
return a + b;
},
jian: function (a, b) {
return a < b ? b - a : a - b;
}
});
$.sub = {
sheng: function (a, b) {
return a * b;
},
chu: function (a, b) {
return a < b ? b / a : a / b;
}
}
jQuery.fn.Insert = function (a) {
alert(a);
}
})(jQuery)
    <script type="text/javascript" src="~/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="~/JQTest.js"></script>
<script type="text/javascript">
function btn_click() {
var a = prompt("请输入一个数字:");
var b = prompt("请输入一个数字:");
var A = prompt("请输入一个数字:");
var c = jQuery.jia(a, b);
var d = jQuery.jian(a, b);
var e = $.sub.sheng(a, b);
var f = $.sub.chu(a, b);
alert("相加:" + c + ",相减:" + d + ",相乘:" + e + ",相除:" + f );
$.fn.Insert("啦啦");
}
</script>
 关于”call”
    语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])

    定义:调用一个对象的一个方法,以另一个对象替换当前对象。

    说明:call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

关于”this”

   在插件的方法中,可能有用到指向插件的this、和指向事件触发的this,所以事件触发的this用event来获取:event.cuerrntTarget

    • event.currentTarget:指向事件所绑定的元素,按照事件冒泡的方式,向上找到元素
    • event.target:始终指向事件发生时的元素

constructor属性:始终指向创建当前对象的构造函数

   每个函数都有一个默认的属性prototype,而这个prototype的constructor默认指向这个函数