Используйте Object.assign
или оператор распространения для объединения значений и передачи ввода через экспортированную функцию.
var def_person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
function updatePerson(newPerson) {
var person = Object.assign({}, def_person, newPerson)
// or {...def_person, ...newPerson}
document.getElementById("demo").innerHTML = person.firstName + " " + person.lastName + ". He is " + person.age + " years old!";
}
function init() {
updatePerson({})
}
// Testing
init()
updatePerson({
firstName: 'Mr.'
})
<div id='demo'></div>
Переход к сценарию через глобальный
Если вы хотите передать аргументы скрипту, не вызывая функцию после загрузки скрипта, определите их как глобальные во встроенном скрипте, и пусть ваш внешний скрипт прочитает их.
В этом примере aScript.js будет использовать newPerson
, определенный в окне.
<script>
newPerson = {firstName:'Mike'}
</script>
<script src='aScript.js'></script>
Затем вы должны проверить newPerson
в своем внешнем скрипте и объединить при необходимости.