js,prototype,jquery的$.extend()、$.fn和$.fn.extend() 相關資料

(1)理解jquery的$.extend()、$.fn和$.fn.extend()

http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html ----------------ok

(2)js 中 (function($){...})(jQuery) 含義

https://www.cnblogs.com/xiyuekamisama/p/9044740.html

(3)$ 、jQuery 對象:https://www.cnblogs.com/maoxiaozhen/p/5426220.html

http://www.tashan10.com/kan-liao-zhe-ge-cai-fa-xian-jqueryyuan-dai-ma-bu-shi-na-yao-hui-se/

 

(4)js中的prototype屬性

https://www.cnblogs.com/dengpeng1004/p/5317245.html------------ok,

每一個構造函數都有一個屬性叫做原型,修改prototype,會修改所有實例的方法和成員屬性。

修改Person的prototype,增加一個函數,所有Person的實例都有該函數了(包括已經創建的實例)。

修改Person的prototype,增加一個成員變量,所有Person的實例都共享該變量了,任意一個實例修改了,都會影響其他實例的調用。。

 

Person對象會自動獲得prototyp屬性,而prototype也是一個對象,會自動獲得一個constructor屬性,該屬性正是指向Person對象

實例person1將包含一個內部指針(很多瀏覽器這個指針名字爲__proto__指向構造函數的prototype,這個連接存在於實例和構造函數的prototype之間,而不是實例與構造函數之間。


function Person(name){
    this.name=name;
}
debugger;     
var person3=new Person('konny');   
Person.prototype.printName=function(){
    alert(this.name);
}
Person.prototype.shareArr=[];
debugger;      
var person1=new Person('Byron');
debugger;      
var person2=new Person('Frank');
person1.shareArr.push(111);
person2.shareArr.push(222);
console.log("person2.shareArr="+person2.shareArr);//person2.shareArr=111,222


person2.shareArr="33333333";
console.log("person1.shareArr="+person1.shareArr);//person1.shareArr=111,222
console.log("person2.shareArr="+person2.shareArr);//person2.shareArr=33333333


----------------
function Obj(){
    var a=0; //私有變量
    var fn=function(){ }//私有函數------------外部將無法訪問到
    
    this.a3=[]; //實例變量
    this.fn3=function(){ }//實例方法------實例化後可以訪問       
}
Obj.a2=0; //靜態變量
Obj.fn2=function(){ } //靜態函數----------通過對象本身仍然可以訪問得到,但是其實例卻訪問不到

Obj.prototype.fn4=function(){ }//原型方法-----------任何實例都可以修改這個方法,並且會影響其他實例的該方法。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章