<object> .toJSON(....)是哪种JavaScript函数?为什么不直接调用就会影响对象?

时间:2019-07-10 09:27:14

标签: javascript json

我是JS的初学者,最近遇到了这段代码。 功能如何影响结果? 我不太了解的第二件事是该函数只是定义的,它被直接调用(pet.toJSON()<<<这样的东西)。那么它怎么可能起作用呢?我想问的最后一件事:该函数的名称是什么,或者我应该在网上寻找什么以了解该功能。 如果这很明显,我很抱歉,但是您的回答对我有很大帮助。 祝你有美好的一天!

<script type = "text/javascript"> 
  $(document).ready(function f() {
    $.ajax('/theURLData', {
        success: function(data, status, xhr) {
            $('#temperature').val(data);
            setTimeout(f, 1000);
        }
    });
}); 
</script>

1 个答案:

答案 0 :(得分:2)

  

<object>.<somefunction>是哪种JavaScript函数?

完全正常的方法。

  

为什么不直接调用就会影响对象?

直接调用它,只是使用您未编写且未查看的代码。

JSON.stringify的内部检查对象上是否有称为toJSON的方法,如果存在,则调用它。

请参见the MDN documentation

  

如果该值具有toJSON()方法,则负责定义将序列化哪些数据。

the specification(更具体地说是this part of it):

  
      
  • 让toJSON为Get(值,“ toJSON”)。
  •   
  • ReturnIfAbrupt(toJSON)。
  •   
  • 如果IsCallable(toJSON)为true      
        
    • 让值成为Call(toJSON,value,«key»)。
    •   
  •