为什么eem . hasownproperty()为假?
Why elem.hasOwnProperty() is false
我有一个点击处理程序
e.addEventListener('click', this.Multiply, false);
和函数
this.Multiply = function () {
APi.Multiply(this);
};
和简单的Select元素。
这里得到Select element
为什么要跑
this.selectedIndex
给出value => 2
但是运行this.getOwnPropertyNames()
会抛出错误
或this.hasOwnProperty('selectedIndex')
->给出假?
这是因为selectedIndex实际上是HTMLSelectElement原型上的一个属性,而不是一个实例属性。要按照您的意愿进行测试,您可以尝试这样做:
this.__proto__.hasOwnProperty('selectedIndex');
或
this.constructor.prototype.hasOwnProperty('selectedIndex');
你应该得到你期望的结果。
当然,这假设您的this
实例实际上是您选择的元素。当然有了这个HTML:
<select id="example"></select>
运行javascript:
var el = document.getElementById("example");
console.log(el.__proto__.hasOwnProperty('selectedIndex'));
将打印true到控制台
相关文章:
- React.isValidElement为假阴性
- Javascript逻辑运算符||将0读取为假值.有什么好办法解决这个问题吗
- 为什么 0 === -0 为真,但 1/0 === 1/-0 为假
- Javascript:检查window.fullScreen是否为假,然后在新窗口中全屏打开url
- 多个函数,返回为假但表单仍在提交
- 为什么提交带有 if 条件的表单为假
- 使正数的计算结果为真,使负数计算为假
- 当 Django 中的确认消息为假时,什么都不做
- 如果 [0] == 0 和 0 == [[0]] 都为真,则为什么 [0] == [[0]] 为假
- meteor 允许 Collection.insert 仅当特定会话/会话不为假时
- JavaScript 属性删除如果为假,则不删除,如果为真循环
- 如何在 Select2 中设置最大选择长度,而关闭选择为假
- 为假三维动画添加透视
- 如果验证为假,如何不发布表单
- 如果来自PHP的结果为假,如何处理ajax请求
- 拖放,使可拖动为假
- 如果条件为假,隐藏第二个模态
- RegEx表示,对于浮点数(JavaScript),我的所有输入都为假
- Boolean'的值显示为真,但显示为假
- 为什么eem . hasownproperty()为假?