面试题 002 - xmfenbei/study-javascript GitHub Wiki
问题:
给String
对象定义一个repeatify
方法。该方法接收一个整型参数,作为字符串重复的次数,最后返回重复指定次数的字符串。例如:
console.log('hello'.repeatify(3));
输出应该是:hellohellohello.
答案:
String.prototype.repeatify = String.prototype.repeatify || function(times) {
var str = '';
for (var i = 0; i < times; i++) {
str += this;
}
return str;
};
解析:
这题检验开发者对JavaScript的继承及原型属性的知识,同时也检验了开发者是否能扩展内置数据类型的方法。
这里的另一个关键点是,看你怎样避免重写可能已经定义了的方法。这可以通过在定义自己的方法之前,检测方法是否已经存在。
String.prototype.repeatify = String.prototype.repeatify || function(times) {/* code here */};
当你被问起去扩展一个JavaScript方法时,这个技术非常有用。