Javascript 物件 類別 的寫法(改版20170414)

特別注意:

Object 傳入函式時 ,是傳址 所以其他函式 一變更就會變
但 一般 參數 string int boolen 則是 傳值 不一樣
跟 C# 一樣 new 之後就是唯一一個除非再 new 一個 不然怎麼改都會改到他

 Json 物件也是物件 陣列也是 Object
這要特別注意 不然會死得莫名其妙
可用 $.extend(A,B); 從 B 複製一份 到 A
參考jQuery.extend的用法
*****************************************
習慣 C# 的 class 之後 知道類別的好用
 javascript 之前 寫的功能少
大部分 都是一直在用別人的 物件
這次終於覺得不用的話 程式會亂到不像話

20170412新增

本來是用最下面的作法 但是還是覺得不是很像 C#
再研究後 原來可改成這樣
function MyRuleObj = function (DivId) {
    Mythis = this;
    Mythis.Jid = "#"+DivId;
    Rtype=0;//私有變數
    Mythis._OpenWin = function ()//自行定義 所要的功能
   {
        var _this = this;//加這個當內部this 怕 跟 java自己的 this 弄混
        alert(_this.Jid);//不可直接用 Jid
        $(Owin).window('open');
    }

    Mythis.Init= function ()
    {
        

    }
};

這樣整個包再一起 就比較像 
如果變數跟function 不加 this 變成私有變數...

以下是之前做法


參考:

用JavaScript寫類別的淺薄心得 - Class篇

一個簡單的範例:
先宣告一個接口 可在建立時傳入變數
var MyRuleObj = function (DivId) {
    this.Jid = "#"+DivId;
};
這邊才是主題
MyRuleObj.prototype = {//原型(Prototype)
    Jid: '',
    Ldlist: '#QusJumpL',
    Rdlist: '#QusJumpR',
    Mdlist:'#QusJumpJ',
    Owin:'#QusJumpwin',
    OpenWin:function()//自行定義 所要的功能
    {
        var _this = this;//加這個當內部this 怕 跟 java自己的 this 弄混
        alert(_this.Jid);//不可直接用 Jid
        $(Owin).window('open');
    },
    Init: function ()
    {
        
    }
}
使用方式:
  var MyRule = new MyRuleObj(did);
            MyRule.OpenWin();
***********************************************





留言

熱門文章