首页 > 解决方案 > 如何使对象在记录时表现为单个许可值,但在分配给变量时充当对象意味着赋予其参考?

问题描述

**

注意:请尝试阅读整个问题。

** 我想要一个对象必须如下所述:

 const Value = function(val){
      this._value = val;
    };
    const space2D = {
           x:new Value(0),
           y:new Value(0),
      };

    //must behave as follow

    console.log(space2D.x); //Must log 0 not JSON Object

    var temp = space2D.x //must store refrence as it do  

我从 react-native Animated 值中得到了这种行为

作为

var pan = Animated.ValueXY({x:3,y:4});

console.log(pan.x);  //get 3
// But x is a object of instance new Animated.Value();
//How 3 ?why  not JSON Formatted

x 是一个对象,我们可以通过记录其属性来检查它,如下所示

console.log(Object.values(pan.x));//output:[{},[],0,0,null]

但是当我做分配操作时,它就像正常的对象一样,因为给定的参考不是 3

var temp = pan.x ;//stored reference

作为它的对象

再次检查它

console.log(Object.values(temp));//output:[{},[],0,0,null]

一个对象在仅记录时如何充当原始值,但在分配给其他变量时如何充当对象?

我试过 Proxy ,getter ,setter , Symbol.toPermitives 。没有办法获得这种行为?

标签: javascriptreact-native

解决方案


推荐阅读