原型的奇怪支持环境检查

时间:2013-08-30 05:25:15

标签: javascript dom prototypejs

我正在查看PrototypeJS代码并找到了这个检查 -

var div = document.createElement('div'),
      form = document.createElement('form'),
      isSupported = false;    
if (div['__proto__'] && (div['__proto__'] !== form['__proto__'])) {
    isSupported = true;
}

我想知道这个条件返回false的情况是什么 -

div['__proto__'] !== form['__proto__']

注意:该函数的注释说 - “内部用于检测浏览器是否支持扩展html元素原型”。不确定这项检查对此有何帮助。

1 个答案:

答案 0 :(得分:0)

此测试允许PrototypeJS确定它是否可以为特定类型的元素原型添加特定方法。

例如,您不希望方法getInputs()(返回所有表单元素的数组)在<div>元素上,因为只有在{{1}上使用它才有意义} element。

HTML

<form>

JS

<div id='mydiv'></div>
<form id='myform'></form>

JSFiddle上的示例http://jsfiddle.net/C39gu/