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(){ }//原型方法-----------任何实例都可以修改这个方法,并且会影响其他实例的该方法。

 

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