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