最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js 編寫規(guī)范

 更新時間:2010年03月03日 13:51:21   作者:  
js輸寫最好還是可以面向對象方式 用類方向進行包裝 js輸寫兩種方式 閉包 原型
在一個項目中大量使用js,工程項目與網站開發(fā)有一些不一樣,在我接觸的工程項目中普遍使用js 不夠多,大部分客戶端可做事,交給了服務端,而且在使用js時不夠規(guī)范,很容易造成代碼難以閱讀、內存泄漏問題,不注意js 輸寫方式。而在網站開發(fā)中(尤其一些大網站,js輸出的非常漂亮、完美無論使用jquery,還是prototype 框架,還是不用框架,都有自己良好一套東東可用)
js輸寫最好還是可以面向對象方式 用類方向進行包裝 js輸寫兩種方式 閉包 原型
閉包:(借用的一個例子)
復制代碼 代碼如下:

function Person(firstName, lastName, age)
{
//私有變量:
var _firstName = firstName;
var _lastName = lastName;
//公共變量:
this.age = age;
//方法:
this.getName = function()
{
return(firstName + " " + lastName);
};
this.SayHello = function()
{
alert("Hello, I'm " + firstName + " " + lastName);
};
};
var BillGates = new Person("Bill", "Gates", 53);

原型:(借用的一個例子)
復制代碼 代碼如下:

  //定義構造函數
function Person(name)
{
this.name = name; //在構造函數中定義成員
};
//方法定義到構造函數的prototype上
Person.prototype.SayHello = function()
{
alert("Hello, I'm " + this.name);
};
//子類構造函數
function Employee(name, salary)
{
Person.call(this, name); //調用上層構造函數
this.salary = salary; //擴展的成員
};
//子類構造函數首先需要用上層構造函數來建立prototype對象,實現繼承的概念
Employee.prototype = new Person() //只需要其prototype的方法,此對象的成員沒有任何意義!
//子類方法也定義到構造函數之上
Employee.prototype.ShowMeTheMoney = function()
{
alert(this.name + " $" + this.salary);
};
var BillGates = new Person("Bill Gates");
BillGates.SayHello();
var SteveJobs = new Employee("Steve Jobs", 1234);
SteveJobs.SayHello();

這兩種方法各有優(yōu)缺點,第一種看起來更像一個類 每個對象設置一份方法有很大浪費,而且資源回收不利,第二種方法,看起來不是很漂亮,可性能很好(不過如果你使用prototype框架,就可以完美解決結構與性能問題了。)

實際在使用jquery 還是prototype問題上,我的一點點體會是 jquery使用閉包方式,而prototype當然原型,jquery更加適合對單個對象操作,而prototype更適合做一些客戶端控件。實際我更喜歡在項目中使用jquery 而網站上更關注prototype

相關文章

最新評論

什邡市| 镇坪县| 宁乡县| 启东市| 平利县| 和静县| 静乐县| 扬州市| 金堂县| 德庆县| 邛崃市| 逊克县| 东光县| 马尔康县| 银川市| 柏乡县| 玉田县| 台南市| 华池县| 商水县| 宁化县| 扬州市| 萨迦县| 桂东县| 兴隆县| 桐梓县| 晋州市| 余干县| 靖宇县| 石门县| 永靖县| 南和县| 北安市| 修水县| 利津县| 德昌县| 萨嘎县| 桓仁| 资溪县| 密云县| 竹溪县|