日期:2014-05-16  浏览次数:20327 次

javascript给builtin对象添加新方法

在Ruby中可以使用Open Class的方法给已有的类添加新的方法,这样可以方便我们扩展新的功能。如rails这样popular的framework都会有core_ext用来添加ruby本身库的功能。虽然可能会出现Monkey Patch的问题,但这样仍然很好的丰富了我们写程序的手法。考虑一个String类,如果我的业务逻辑是经常会取出String对象的第一个字符并且返回大写形式。我就可以打开String类。直接添加一个这样的方法就行。如下:

class String
	def capital
		self[0].to_s.upcase
	end
end

puts "kiwi".capital 

如果是javascript可以用prototype完成。即在prototype中添加一个新的方法

String.prototype.capital = function() {
	return this[0].toString().toUpperCase();
}

console.log("kiwi".capital());

如果没有这样的方法,我们可能就会可能会需要继承String类型,然后取名为CapitalString。或者说,提供一个Util之类的东西,capital(string)这样来完成。但是这样怎么看都不够直接,不够表意。