Js面向對象 Js模型
一點拙劣的小分享,歡迎批評和補充
我們經常在Js中為我們的各類組件,構造Json格式的假數據。我們看如下代碼:
var jsonResult = [ { 'name': 'ws', 'age': '22' }, { 'name': 'td', 'age': '22' } //我們把jsonResult[x]當作對象,其中的自然為屬性 ]; window.onload = function () { alert(jsonResult[0].name); }
那麼對象的方法如下:
var jsonResult = [ { 'name': 'ws', 'age': '22','speakFunc':function () { alert('hi,my name is ws'); } }, { 'name': 'td', 'age': '22' ,'speakFunc':function () { alert('hi my name is '+jsonResult[1].name); }} //我們把jsonResult[x]當作獨立個體對象 ]; window.onload = function () { jsonResult[0].speakFunc(); jsonResult[1].speakFunc(); }
下麵給出可讀性,復用性更佳的方法,包括閉包。
var myUpStageClass = function () { var instance = { firstFunc: function () { //方法名可以不用引號 alert('第一個方法輸出'); }, 'secondFunc': function (param) { alert(param); } } return instance; //返回閉包的對象 } var appObj = myUpStageClass(); //接受閉包的對象,是不是像實例化 window.onload = function () { appObj.firstFunc(); appObj.secondFunc('第二個方法輸出'); }
建議把我們所需要的,復用性高的JS,作為我們項目最頂層的js封裝好,並且在閉包外的全局上接受閉包對象,提供給下層調用。