静态方法:给类添加的方法,或者是类可以调用的方法,静态成员只在内存中占一块区域。
实例方法:类实例化后对象的方法,或者说是类实例对象调用的方法。每创建一个实例,都会在内存中为非静态成员分配一个存储空间。
function Foo(){
}
Foo.jingtai=function(){
console.log("静态方法")
}
Foo.prototype.shilihua=function(){
console.log("实例化方法")
}
Foo.jingtai() // 类直接调用
var foo=new Foo(){
}
foo.shilihua(); // 实例化对象调用
在来说下jQuery中的$.fn.extend()和$.extend()的区别:
1、$就是jQuery的别称
2、jQuery中的extend常在开发插件中用到。对象的拷贝。
3、查看jQuery代码可以发现
jQuery.fn = jQuery.prototype = {
init: function( selector, context ) {//….
//……
};
即 jQuery.fn = jQuery.prototype.
<button type="btn" class="btn"> 点击</button>
<script src="jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
// 为类添加新方法 静态方法 静态方法是不能给实例所调用的
jQuery.extend({
foo:function(){
alert("静态方法")
}
})
jQuery.foo(); // 静态方法
// $(".btn").foo(); // $(...).foo is not a function
// jQuery.fn= jQuery.prototype 给实例添加方法 实例方法
jQuery.fn.extend({
newclick:function(){
$(this).click(function(){
alert("实例方法")
})
}
})
$(".btn").newclick(); // 实例方法