我在蜘蛛猴网站上看到了示例代码,JS_EvaluateScript总是引用全局范围对象, 如果我想创建父对象是全局范围的范围对象,这将有效吗?
JS_EvaluateScript (cx , scope_obj, ... )
scope_1 ----将 - 全局对象作为父对象 scope_2 ---- has - 全局对象作为父对象
当我开始
JS_EvaluateScript(cx , scope_1 , "var scope1var = 'hello'"....)
没关系...
然后我运行
JS_EvaluateScript(cx , scope_2 , "scope1var +' world'"....)
它应该有错误,因为scope_2没有scope_1的变量。
但结果返回“hello world”
请告知我是否遗漏了什么,先生
============================
或者,您能否告诉我如何在代码进入新范围时实施? 谢谢。
答案 0 :(得分:0)
当我找到带有“var”snytax的脚本时,JS_EvaluateScript函数将仅使用全局范围执行
JS_EvaluateScript(cx,scope_1,“var scope1var ='hello'”....)
它将变量声明为全局范围/或者像使用JSPROP_PERMANENT标志运行定义全局范围的属性(因此无法运行脚本“delete scope1var”)
JS_DefineProperty(CX,globalScop,...,JSPROP_PERMANENT)