Поведение реентерабельной синхронизации с синхронизированными операторами

У меня есть два метода в классе java, у каждого из которых есть блок кода, который синхронизируется с использованием одного и того же объекта. Я понимаю, что в схеме синхронизации JAVA блокировки, полученные потоком, являются реентерабельными. } объект2 = {тип: 'obj2', pName: 'pName' } В моем js-коде у меня есть: object = GET_OBJECT (); Метод GET_OBJECT () возвращает ...

У меня есть два объекта:

object1={
   type: 'obj1',
   nName: 'nName'
}

object2={
   type: 'obj2',
   pName: 'pName'
}

В моем js-коде у меня есть:

object=GET_OBJECT();

Метод GET_OBJECT () возвращает либо объект1 ] или object2 , тогда я хотел бы получить доступ к атрибуту объекта name , который является либо nName , либо pName .

I есть один метод, который получит имя (pName или nName) возвращаемого объекта:

function getName(Object, name){
      return object.name;
}

где я бы хотел, чтобы name было переменной, чтобы я мог получить доступ к pName ] или nName таким образом:

object=GET_OBJECT();

var name='';

if(object.type=='obj1')
   name='nName';
else
   name='pName';

var finalName=getName(object, name);

Но, похоже, это не сработает, поскольку in:

function getName(Object, name){
          return object.name;
    }

name - это переменная. В JS, есть ли способ получить доступ к атрибуту как переменной?

6
задан Brian Tompsett - 汤莱恩 24 October 2019 в 11:32
поделиться