【问题标题】:Are toString() and toLocaleString() properties and/or methods in Javascript?Javascript 中的 toString() 和 toLocaleString() 属性和/或方法是什么?
【发布时间】:2011-07-25 02:31:42
【问题描述】:

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

如果两者都不是,这是什么意思:

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

【问题讨论】:

标签: javascript object methods properties


【解决方案1】:

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

所以在你的例子中 toString 和 toLocaleString 都是方法。

如果你有兴趣,请参考这个很棒的资源:

Javascript: The Definitive Guide - 8.3. Methods

【讨论】:

    【解决方案2】:

    对于所有 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”对象直到函数调用时才被绑定,因此没有对象“拥有”作为方法的函数的概念,它可能恰好具有属性其值为方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-13
      • 2018-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 2022-08-24
      相关资源
      最近更新 更多