Javascript中的toString()和toLocaleString()属性和/或方法?

时间:2011-03-29 08:43:44

标签: javascript object methods properties

Javascript属性和/或方法中的toString()toLocaleString()是否在Object中定义?

如果不是两者,这意味着什么:

var person1 : {
    toString = function(){
      return "Hello";
    },
    toLocaleString : {
       return "Halo";
    }
};

2 个答案:

答案 0 :(得分:1)

对象可以有方法和属性。属性基本上是变量,方法是函数。在Javascript中,情况更有趣,因为变量可以保存一个函数。但是,如果您在对象中具有属性作为属性,则它们被视为方法。

因此在您的示例中,toString和toLocaleString都是方法。

如果您有兴趣,请参阅以下资源:

Javascript: The Definitive Guide - 8.3. Methods

答案 1 :(得分:1)

对于所有JavaScript对象,“toString”和“toLocaleString”属性的值应该是一个函数,它将被调用以检索对象的字符串表示。

您的示例代码存在一些问题,请参阅下面的更正:

var person1 = { // Assign a new literal object to "person1"
  toString: function() { // With property "toString" as a function...
    return "Hello";
  },
  toLocaleString: function() { // ...and "toLocaleString" as a function.
    return "Halo";
  }
}; 

为了回答我认为你的问题标题所暗示的内容,JavaScript中“方法”的概念并不存在。也就是说,函数只是函数,并且“this”对象直到函数调用时才被绑定,因此没有对象“拥有”函数作为方法的概念,它可能恰好具有属性其价值观是方法。