- JS的原生
eval()
方法可以将字符串当成函数来执行 - 现代JS编程不提倡使用
eval()
方法 - 我们使用new Function()自定义一个方法替代原生的
eval()
方法
// ⏹使用new Function()自定义一个方法来替代eval()方法
const student = {
address1: '',
address2: '',
address3: ''
}
const addressList = ['地址1', '地址2', '地址3'];
/*
❗❗❗定义一个代替eval()方法的替代方法
new Function 允许我们将任意字符串变为函数
*/
function invokeStr(fn) {
const Fn = Function;
return new Fn('return ' + fn)();
}
for (const [index, item] of addressList.entries()) {
// 调用我们自定义的函数向student中封装数据
invokeStr(`student.address${index + 1} = "${item}"`);
}
console.log(student);
参考资料
1. https://xundh.blog.csdn.net/article/details/48153121
2. https://zh.javascript.info/new-function