如何从Javascript中同一对象的方法内部访问对象的值?

时间:2009-11-30 20:37:48

标签: javascript prototype methods oop

我正在尝试使用原型在Object对象中添加一个toBool()“方法”......类似这样:

Object.prototype.toBool = function ()
{
 switch(this.toLowerCase())
 {
  case "true": case "yes": case "1": return true;
  case "false": case "no": case "0": case null: return false;
  default: return Boolean(string);
 }
}

var intAmount = 1;
if(intAmount.toBool()) 

但我在尝试从同一对象方法this.toLowerCase()

中访问对象的值时遇到问题

应该怎么做?

1 个答案:

答案 0 :(得分:1)

您的代码不起作用,因为toLowerCase()是String的方法,但不是Number的方法。因此,当您尝试在数字1上调用toLowerCase()时,它不起作用。解决方案就是首先将数字转换为字符串:

Object.prototype.toBool = function ()
{
 switch(String(this).toLowerCase())
 {
  case "true": case "yes": case "1": return true;
  case "false": case "no": case "0": case null: return false;
  default: return Boolean(string);
 }
}