1
我一直在玩JavaScript擴展其功能,但已經注意到我不想發生的一些行爲。擴展JavaScript?
拿這個例子:
String.prototype.capitalize = function()
{
return this.replace(/(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase(); });
};
Object.prototype.sizeof = function()
{
var counter = 0;
for(index in this)
{
console.info(index);
counter++;
}
return counter;
};
var animals = {cow: 'moo', duck: 'quack'}
animals.sizeof();
console.info(' ');
var stirngs = "yay";
for(i in stirngs) console.info(i);
時會產生輸出:
code
duck
sizeof
0
1
2
capitalize
sizeof
我拿到打印出來的所有對象顯示的sizeof,因爲我只用字符串做一個對象,同樣,因爲一個字符串是一個對象,所以它獲得了大寫和sizeof對象的連接。
問題是爲什麼我看不到像toLowerCase這樣的其他JavaScript對象,我假設它與通過原型進行擴展有關。無論如何不會讓這些人出現這樣的情況,這與我正在寫的其他功能有關。
好極了,謝謝! – Rob 2012-03-24 22:37:15