Question: I have two objects. I want to add new properties to them, but I want to select first which object to use. Here's the desired logic :

```
let myFn = (function() {

    // The Two Objects
    let university = {}
    let Person = {}

    let AddNewPropTo = ( objName , new_objProp ) => {
         return objName[new_objProp] = null;  // logic fail 1
    }
    let getProps = (objName) => {
       return Object.getOwnPropertyNames(objName)
    }

    return {
       AddNewPropTo,
       getProps
    }

})();

     myFn.AddNewPropTo('Person','Age'); // logic fail 2
     myFn.getProps(Person) // Desired Output : Person = { Age : null }

```

Answer: 
The error message at logic fail 1 tells you that you're trying to add a property to the string `objName` rather than the object.  

So you need to select one of your objects, 

```
let AddNewPropTo = ( objName , new_objProp ) => {
  if (objName === 'Person') {
    Person[new_objProp] = null
    return Person
  }
  if (objName === 'university') {
    university[new_objProp] = null
    return university
  } 
}

```

The second logic fail looks like a really basic mistake, the return value isn't captured 

```
const Person = myFn.AddNewPropTo('Person','Age'); // logic fail 2
const props = myFn.getProps(Person) // Desired Output : Person = { Age : null }
console.log(props)

```

If you want to get more dynamic, try this

```
let university = {}
let Person = {}
const map = {
  'Person': Person,
  'university': university
}

let AddNewPropTo = ( objName , new_objProp ) => {
  let obj = map[objName]
  if (obj) {
    obj[new_objProp] = null
    return obj
  }
  return {}
}

```
I am not familiar with typescript but i got the result as like you want

Check this [fiddle](https://jsfiddle.net/dfkb1vL8/)

Code:

```
let Person = {}

function AddNewPropTo( objName , new_objProp ) {
     return objName[new_objProp] = 1;  // logic fail 1
}
function getProps  (objName) {
   return Object.getOwnPropertyNames(objName);
}

 AddNewPropTo(Person,'Age'); 
 console.log(getProps(Person)) ; //returns ['Age']

```