首页 > 代码库 > jquery.extend 学习笔记

jquery.extend 学习笔记

//
// jquery.extend 学习笔记
// jquery.extend 扩展方法设计的很巧妙,动态增加静态方法和属性

// 虽然网上资料很多,还是跟据自已的学习理解记录一下。
//


//定义一个Person构造函数
function Person(iname,iage){
  this.uname = iname;
  this.age = iage;
}

//定义原型方法
Person.prototype = {
  showN:function(){
    //调用静态方法
    Person.showName(this);
  },
  showA:function(){
    //调用静态方法
    Person.showAge(this);
  }
}


//
// 主要看下面两个重要方法
//

//
//1.扩展函数
//两个参数:obj为对像参数,prop属性参数
//obj值是一般是{key:value}类似json格式
//
Person.extend = function(obj,prop) {

  //如果没有prop属性参数
  if ( !prop ) {
    prop = obj;//将对像函数列表
    obj = this; //obj为指向调用它的类的对像Person
  }
  //将要扩展的函数赋给obj指向的对像Person
  for ( var i in prop ){
    //console.log(prop[i] );
    obj[i] = prop[i];
    //console.log( obj[i] );
  }
  //console.log(obj, prop);
  return obj;
};


//2. 调用扩展静态函数
//参数为对像(也就是扩展的函数和属性列表)
Person.extend({

  person:"v1.0",

  //定义静态方法showName
  showName:function(obj){
    alert("uname=" + obj.uname );
  }
  ,
  //定义静态方法showAge
  showAge:function(obj){
    alert("age=" + obj.age );
  },

  //这里可以增加更多的扩展函数方法

});
//=========================================================


//测试用
var p = new Person("Hello dream", 30);
p.showN();
p.showA();

 

jquery.extend 学习笔记