javascript 定義對象、方法和屬性的使用方法(prototype)

prototype

定義和用法
prototype 屬性使您有能力向對象添加屬性和方法。

語法

object.prototype = {
    函數名 : function(){}
}
object.prototype.name=value

javaScript的中類和對象

  1. 定義類

    1//第一種定義方式
    var people = function(name){
        this.name = name;
        this.say = function(msg){
            alert(this.name + " say : " +msg);
        }
    }
    //第二種定義方式
    function people(name) {
        this.name = name;
        this.init = function(msg){
            alert(this.name + " say : " +msg);;
        }
    }
    //調用
    var people = new people("I");
    people.init("hello");//輸出:I say hello
    
    //定義靜態方法,接例1
    people.says = function(msg){
        alert(this.name + " say : " +msg);
    }
    people.aa = "aa";
    //調用
    people.inits("hellos");//I say Hellos   
    alert(people.aa);//aa
    //這種定義方式無法使用map的調用方式,不懂
  2. 定義對象,調用時使用對象.方法或者和java調用map的方式一樣對象['方法名'](args)

    2//定義對象
    var people = {
        run : function(){
            alert("I can run");
        }   
    };
    //調用
    people.run();//輸出 I can run
    people['run']();//同上
  3. 以上兩種方式不能同時使用

Javascript的方法可以分爲三類

  1. 類方法,如例1
  2. 對象方法,如例2
  3. 原型方法,prototype

    3//定義類
    var people = function(name){
        this.name = name;
    }
    //原型方法
    people.prototype = {
        introduceChinese : function(){
            alert(this.people +"的名字是"+this.name);
        }
        people;
    };
    
    //測試
    
    var p1=new people("Windking");
    p1.people = '誰';
    p1.IntroduceChinese(); 

總結:

  1. javaScript創建對象就是定義函數
  2. javaScript對象定義方法和屬性有三種方式

    • 在函數內部定義方法和屬性,類似java的定義,如例1
    • 使用函數名.prototype定義方法和屬性,例3
    • 使用對象定義方法和屬性
  3. 使用prototype定義屬性時,要放在定義方法的後面,不然屬性會是undefined

  4. 使用javascript定義屬性,不像java那麼嚴謹,在實例經對象後,也可以定義屬性
  5. 使用prototype和函數內部定義方法和屬性,其作用是一樣的,都需要實例化函數後纔可使用
  6. 直接使用函數名定義方法和屬性,類似java的靜態該當和變量,如:
   function scriptBean(){}
   //定義方法
   scriptBean.sayHello = function(msg){
    console.log(this.name + " say : " +msg);
   }
   //定義屬性
   scriptBean.name = "scriptBean";
   //調用
   scriptBean.sayHello("hello");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章