权限被拒绝设置变量

时间:2016-12-01 17:47:53

标签: javascript

我试图在应用程序中找出一个非常随机的错误,供应商似乎也在纠正问题所以这更像是一个问题,以帮助我理解可能导致此问题的不同方案在js世界。

这是基于Javascript的错误,拒绝权限'

报告为问题的行只是将变量设置为false。

<script LANGUAGE="JavaScript" for='tdNote' event='onclick'>
    if (this.firstChild.src.indexOf('icon_blank.gif') != -1) return;
    if(mbInNoteClick || mbInGridClick) return;

    mbInNoteClick = true;
    onGridClick(this.parentElement.rowIndex);
    onNoteIconClick(this.parentElement.rowIndex);
    mbInGridClick = false; //THIS LINE IS REPORTED AS PERMISSION DENIED
    mbInNoteClick = false;
    window.event.cancelBubble = true;
</script>

包含此代码的页面没有此变量,因此我假设这是在某处全局设置的。 (大型申请)

如果在if语句中可以访问它,那么在尝试设置变量时会出现哪些情况会导致权限被拒绝?

1 个答案:

答案 0 :(得分:1)

该属性是常量或标记为不可变,主要是指不可写属性,因为它的定义如下:

Object.defineProperty( myObject, "a", {
  value: 4,
  writable: false,  // not writable! 
  configurable: false, // not configurable!
} );

来自js大师凯尔辛普森在他的书中说:&#34;你不知道JS-这个&amp;对象原型&#34;

  

有一个细致入微的例外需要注意:即使属性是   已经可配置:false,writeable总是可以从true更改   假如没有错误,但如果已经错误则不会返回true。

if条件代码正在读取它,这就是您具有读访问权限的原因。

还有其他方法可以对以下属性声明权限:Object。 preventExtensions ,Object。 seal ,Object。 freeze