对于继承的属性,SSJS hasOwnProperty返回true

时间:2014-02-27 13:43:42

标签: javascript xpages xpages-ssjs

要在xPages中测试,可以使用:

<xp:text escape="false">
  <xp:this.value>
  <![CDATA[#{javascript:
    (function() {
      var fn = function() {};
      fn.prototype = {prop: "value"};
      var obj = new fn();
      return [
        obj.hasOwnProperty("prop"),
        obj.hasOwnProperty("undefined_prop"),
        obj.hasOwnProperty("toString"),
        obj.hasOwnProperty("constructor")
      ];
    })();
  }]]>
  </xp:this.value>
</xp:text>
<!-- returns [true, false, true, true] -->

要在浏览器中对此进行测试,您可以将javascript代码粘贴到浏览器控制台。

//returns [false, false, false, false] (in browser)

以下是MDN

的引用
  

来自Object的每个对象都继承hasOwnProperty方法。此方法可用于确定对象是否具有指定的属性作为该对象的直接属性;与in运算符不同,此方法不会检查对象的原型链。

为什么xPages SSJS行为与浏览器不同?

0 个答案:

没有答案