js 編寫規(guī)范
更新時(shí)間:2010年03月03日 13:51:21 作者:
js輸寫最好還是可以面向?qū)ο蠓绞?用類方向進(jìn)行包裝 js輸寫兩種方式 閉包 原型
在一個(gè)項(xiàng)目中大量使用js,工程項(xiàng)目與網(wǎng)站開發(fā)有一些不一樣,在我接觸的工程項(xiàng)目中普遍使用js 不夠多,大部分客戶端可做事,交給了服務(wù)端,而且在使用js時(shí)不夠規(guī)范,很容易造成代碼難以閱讀、內(nèi)存泄漏問題,不注意js 輸寫方式。而在網(wǎng)站開發(fā)中(尤其一些大網(wǎng)站,js輸出的非常漂亮、完美無論使用jquery,還是prototype 框架,還是不用框架,都有自己良好一套東東可用)
js輸寫最好還是可以面向?qū)ο蠓绞?用類方向進(jìn)行包裝 js輸寫兩種方式 閉包 原型
閉包:(借用的一個(gè)例子)
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);
原型:(借用的一個(gè)例子)
//定義構(gòu)造函數(shù)
function Person(name)
{
this.name = name; //在構(gòu)造函數(shù)中定義成員
};
//方法定義到構(gòu)造函數(shù)的prototype上
Person.prototype.SayHello = function()
{
alert("Hello, I'm " + this.name);
};
//子類構(gòu)造函數(shù)
function Employee(name, salary)
{
Person.call(this, name); //調(diào)用上層構(gòu)造函數(shù)
this.salary = salary; //擴(kuò)展的成員
};
//子類構(gòu)造函數(shù)首先需要用上層構(gòu)造函數(shù)來建立prototype對(duì)象,實(shí)現(xiàn)繼承的概念
Employee.prototype = new Person() //只需要其prototype的方法,此對(duì)象的成員沒有任何意義!
//子類方法也定義到構(gòu)造函數(shù)之上
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)缺點(diǎn),第一種看起來更像一個(gè)類 每個(gè)對(duì)象設(shè)置一份方法有很大浪費(fèi),而且資源回收不利,第二種方法,看起來不是很漂亮,可性能很好(不過如果你使用prototype框架,就可以完美解決結(jié)構(gòu)與性能問題了。)
實(shí)際在使用jquery 還是prototype問題上,我的一點(diǎn)點(diǎn)體會(huì)是 jquery使用閉包方式,而prototype當(dāng)然原型,jquery更加適合對(duì)單個(gè)對(duì)象操作,而prototype更適合做一些客戶端控件。實(shí)際我更喜歡在項(xiàng)目中使用jquery 而網(wǎng)站上更關(guān)注prototype
js輸寫最好還是可以面向?qū)ο蠓绞?用類方向進(jìn)行包裝 js輸寫兩種方式 閉包 原型
閉包:(借用的一個(gè)例子)
復(fù)制代碼 代碼如下:
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);
原型:(借用的一個(gè)例子)
復(fù)制代碼 代碼如下:
//定義構(gòu)造函數(shù)
function Person(name)
{
this.name = name; //在構(gòu)造函數(shù)中定義成員
};
//方法定義到構(gòu)造函數(shù)的prototype上
Person.prototype.SayHello = function()
{
alert("Hello, I'm " + this.name);
};
//子類構(gòu)造函數(shù)
function Employee(name, salary)
{
Person.call(this, name); //調(diào)用上層構(gòu)造函數(shù)
this.salary = salary; //擴(kuò)展的成員
};
//子類構(gòu)造函數(shù)首先需要用上層構(gòu)造函數(shù)來建立prototype對(duì)象,實(shí)現(xiàn)繼承的概念
Employee.prototype = new Person() //只需要其prototype的方法,此對(duì)象的成員沒有任何意義!
//子類方法也定義到構(gòu)造函數(shù)之上
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)缺點(diǎn),第一種看起來更像一個(gè)類 每個(gè)對(duì)象設(shè)置一份方法有很大浪費(fèi),而且資源回收不利,第二種方法,看起來不是很漂亮,可性能很好(不過如果你使用prototype框架,就可以完美解決結(jié)構(gòu)與性能問題了。)
實(shí)際在使用jquery 還是prototype問題上,我的一點(diǎn)點(diǎn)體會(huì)是 jquery使用閉包方式,而prototype當(dāng)然原型,jquery更加適合對(duì)單個(gè)對(duì)象操作,而prototype更適合做一些客戶端控件。實(shí)際我更喜歡在項(xiàng)目中使用jquery 而網(wǎng)站上更關(guān)注prototype
您可能感興趣的文章:
- JavaScript開發(fā)規(guī)范要求(規(guī)范化代碼)
- javascript代碼規(guī)范小結(jié)
- JavaScript的代碼編寫格式規(guī)范指南
- JavaScript 開發(fā)規(guī)范要求(圖文并茂)
- JavaScript 開發(fā)中規(guī)范性的一點(diǎn)感想
- JavaScript之編碼規(guī)范 推薦
- JavaScript模塊規(guī)范之AMD規(guī)范和CMD規(guī)范
- 淺析JavaScript中的CSS屬性及命名規(guī)范
- 現(xiàn)如今最流行的JavaScript代碼規(guī)范
- 超全面的JavaScript開發(fā)規(guī)范(推薦)
相關(guān)文章
實(shí)例講解JavaScript中的this指向錯(cuò)誤解決方法
JavaScript中this指向的處理是令大家普遍頭疼的問題,這里我們舉一個(gè)實(shí)例講解JavaScript中的this指向錯(cuò)誤解決方法,需要的朋友可以參考下2016-06-06URL編碼轉(zhuǎn)換,escape() encodeURI() encodeURIComponent()
URL編碼轉(zhuǎn)換,escape() encodeURI() encodeURIComponent()...2006-12-12簡(jiǎn)介JavaScript中toTimeString()方法的使用
這篇文章主要介紹了簡(jiǎn)介JavaScript中toTimeString()方法的使用,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06javascript實(shí)現(xiàn)2048游戲示例
這篇文章主要介紹了javascript實(shí)現(xiàn)2048游戲示例,需要的朋友可以參考下2014-05-05淺談JavaScript的Polymer框架中的behaviors對(duì)象
這篇文章主要介紹了淺談JavaScript的Polymer框架中的behaviors對(duì)象,Polymer是由Google開發(fā)的Web UI相關(guān)框架,需要的朋友可以參考下2015-07-07