javascript學習筆記二:javascript原型+對象字面量等

來源:互聯網
上載者:User

1.用for-in遍曆對象時(for-in最好不要用來遍曆數組,遍曆數組一般用for-each)最好要過濾掉對象的原型鏈的幹擾

if(Object.prototype.clone === 'undefined'){Object.prototype.clone = function(){}}for(var key in MyObject){if(MyObject.hasOwnProperty(key)){//代表是有原型鏈的,原型鏈中的有一些對象或者屬性可能會與我們正在遍曆的對象的屬性發生衝突,故而應該過濾掉原型鏈。}}

2.要增加原型的屬性(方法)需要使用諸如這樣的方式:Object.prototype.屬性/方法 = .../function(){}。


3.隱式全域變數與顯式全域變數:隱式全域變數是在函數(funtion)裡面聲明的全域變數;顯式全域變數則不是在函數裡面聲明的全域變數。

3.代碼中避免隱式類型轉換:當判斷"false == 0"時返回的是true,這種情況是不符合邏輯的,這時候只好使用"false === 0"來避免這種類型隱式地被轉換了。

4.千萬不要使用eval():此函數可以將任意一個字串當做一個javascript程式碼片段來執行,當需要討論的代碼是預先編寫好了的,是沒有理由使用eval()的。
如果代碼是運行時動態產生的,也有其他的方法來實現相應的功能。

 例子:var a = eval('1234+567');//結果是1810var b = '1234+567';//結果是1234+567alert(a);

5.parseInt():此方法會解析一個字串並返回其中的數值,當字串是"09"這種類型時,使用parseInt('09')返回的就是0,因為0開始的字串會被當做八進位來解析。
在這種情況下我們就需要使用另一個參數來約束這個方法,像這樣parseInt('09',10)就表明在解析這個字串的時候是以十進位來解析的,返回的結果就是9;
當然如果字串中全部是數值的話還可以使用Number('09')這種方法來擷取到9這個結果,但是像"009 Hello"的字串如果使用Number()方法來轉換時返回的結果就是NaN,此時最好
還是用parseInt()方法。

6.javascript中的“對象字面量”:

  var Person = function(name){this.name = name,this.say = function(){return 'I am '+this.name;}  }

當我們使用new 使用這個建構函式時,其內部實際上是發生了一下的情況:

 var Person = function(){  //建立了一個“空”對象,此對象的引用指向了Person 這個對象  var this = {};  //想this這個“空”對象添加屬性和方法  this.name =  name,  this.say = function(){  return 'I am '+this.name;  }  }

其實,上面所說的this對象是一個Null 物件其實是不準確的,因為this還繼承了Person 的原型中的所有成員,因此,更像是下面的語句:
this = Object.create(Person.prototype)
而且在建構函式中我們可以返回任意一個參數,只要這個參數是一個對象就行了

7.在javascript中可重用的方法都應該放置到最先的原型中。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.