@jsonserialize在啥时候生效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@jsonserialize在啥时候生效相关的知识,希望对你有一定的参考价值。

参考技术A 可以在对象转换成Json的时候进行替换。
方式一:通过使用工具类,在请求进入前,或响应前对参数进行处理,然后进行封装。方式二:使用 @JsonDeserialize 和 @JsonSerialize 注解对在序列化和反序列化时对参数进行处理。

函数对象在啥时候具有属性?

【中文标题】函数对象在啥时候具有属性?【英文标题】:At what point does a function object have properties?函数对象在什么时候具有属性? 【发布时间】:2019-12-31 05:57:10 【问题描述】:

函数是一流的对象,似乎它们的本地数据在某些时候必须具有属性,但我对何时/如何发生这种情况感到困惑。

举个例子:

var output = function(x)
    var s = "string";
    delete s;
    return s + " " + x;
;
console.log(output("bean"));

输出string bean。我不确定我是否希望它删除s 我只是在胡闹,因为我认为var 全局声明成为窗口对象的属性。

我知道delete 不适用于局部变量,它仅适用于对象属性。而且因为函数是对象,我想知道函数中的本地数据在什么时候成为“属性”

【问题讨论】:

阅读什么the delete operator does 【参考方案1】:

我想知道函数中的本地数据在什么时候成为“属性”

它没有。您将函数调用与与函数的普通对象类交互混淆了。

与所有对象一样,函数可以具有与其关联的任意键值属性,例如:

var fn = function(x)
  // do something
  // not important
;
fn.foo = 'foo';
console.log(fn.foo);

除非您像这样显式地为函数分配属性,否则该函数不会具有除函数通常具有的属性(如.prototype)之外的属性。

不过,将这样的任意属性分配给函数是很奇怪,并且在大多数情况下可能不应该这样做。

函数通常具有的其他属性有.name(命名函数名)、.length(指函数采用的参数数量)。

这与不能分配键值对的非对象原语相反:

'use strict';
const someStr = 'foo';
someStr.bar = 'bar';

(但是,当您尝试引用原语上的属性时,解释器会先将其包装在适当的原型中,从而将其转换为对象,以便原型继承与它一起使用)

【讨论】:

那么全局变量成为窗口对象的属性是如何工作的呢? 这是一个完全不同的问题,但基本上,事情就是这样。 ***.com/questions/55030498/… 请注意,使用 constlet 声明的变量不会分配给全局对象,即使它们位于顶层

以上是关于@jsonserialize在啥时候生效的主要内容,如果未能解决你的问题,请参考以下文章

css的min-width,max-width,max-height,min-height在啥情况下有效

函数对象在啥时候具有属性?

我应该在啥时候指定 setFetchSize()?

这将在啥时候执行?

afterpropertiesset在啥时候执行

在啥时候定义变量比进行方法调用更有效?