Javascript动态变量名称不起作用

时间:2019-06-19 19:12:54

标签: javascript

我有一个表格,其中有一个产品列表,其中每个产品都有一个输入(我们称其为“ pc”)。每个输入都被命名为“ pc”,产品ID与ID相同。 IE:“ pc100”,“ pc101”等。每个输入都有一个onkeyup事件,以调用一个函数来填充我通过产品ID的价格(import React, { Component } from "react"; import { BrowserRouter as Router, Route, Link } from "react-router-dom"; export default class InstructorProfile extends Component { render(){ return( <div> <h1>Welcome to the profile</h1> </div> ); } } 该函数接收ID,但我无法将javascript配置为该ID。只要能获得动态变量名,我就会拥有其余的代码。互联网上充满了诸如eval()和window []之类的各种东西,我尝试了我能想到的所有可能的组合/ find。我知道可以使它正常工作。所以...如何使此警报正常工作?

大多数结果是,当我需要“在这里测试”时,我会给我“ pc100”

onkeyup='myfunction(100)

1 个答案:

答案 0 :(得分:2)

不要使用动态变量名。在数据结构中使用查找:

function f(id) {
  var pc = {
    331: "Here's my test"
  }

  console.log(pc[id]);
}

动态变量是一个巨大的问题,尤其是从安全角度来看。如果您天真并且使用eval,那么有人可以构造一个执行任意JavaScript的id值,那么您就会遇到XSS问题。