Javascript根据字符串确定是否存在此类对象属性

时间:2017-05-13 09:47:42

标签: javascript

我们有一个允许用户创建一些脚本的模块。

我想确定用户是否使用了正确的属性等。

例如用户写道:

var test = session;

我能做到:

var something = eval("session");
if (!something){
    // Throw error here
}

但我面临着这个问题:

var test = session.id; // session id property is "id123456"

我以为我能做到:

var something = eval("session.id");
if (!something){
    // Throw error here
}

但它似乎真的这样做了:

var something = eval("id123456");

有什么建议我如何确定此对象中是否存在wheter属性,还有属性中的属性以及更多?

正如我所说的那样,我并没有试图确定某些特定物体的特定物体,结构可以是:

session.id.toString()。name ...以及

此外,我刚试过这个:

session.hasOwnProperty("id"); // returned false

session.id // returned "id123456"

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

eval('var session = {id:"id1234"}');
var x = eval("session")
console.warn(eval("x.id"))
console.error(eval("x.id.toString()"))
console.log(x.id)