按Javascript中的值返回Object

Return Object by value in Javascript

本文关键字:返回 Object Javascript      更新时间:2023-09-26

我知道Javascript中的对象是通过引用传递的,但有没有任何方法可以将对象作为值返回。

当多次调用decodePermissions()时,它们总是共享同一个对象。所以我的问题是,有没有任何方法可以为每个调用创建对象?

function decodePermissions(table, group) {
    return {
            add: canPerformAction(table, group, ACTION.ADD),
            edit: canPerformAction(table, group, ACTION.EDIT),
            delete: canPerformAction(table, group, ACTION.DELETE)
        }
}

我假设每次函数解码Permissions(table,group).add(table,group.ACTION.add);如果调用,则要创建一个新的对象。

我不确定这是否是你想要的,但我在下面的jsbin链接上附上了一个基本的例子

https://jsbin.com/jofikudite/edit?html,js,控制台,输出

每次调用objCreator.createNewObject(param)时,它都会创建一个新的对象,该对象不会以任何方式链接到通过该函数创建的其他对象。

否,您可以深度复制对象并返回新对象

function returnObj( obj )
{
  return JSON.parse( JSON.stringify( obj ) );
}