在其参数中获取函数本身
getting function itself among its parameters
有一个简单的函数,它将给定的属性应用于 DOM 元素:
Object.prototype.setAttr = function(attr) { // attr is an object
for ( var i in attr )
this.setAttribute( i, atr[i] );
};
除了传递的参数之外,我还得到了函数setAttr本身。 谁能解释这种行为?
你需要使用 hasOwnProperty 来避免遍历原型链。
由于attr
是一个对象,并且您已将setAttr
添加到Object
的原型中,因此attr还可以通过其原型链访问setAttr
方法。
Object.prototype.setAttr = function(attr) { // attr is an object
for (var i in attr) {
if (attr.hasOwnProperty(i))
this.setAttribute(i, attr[i]);
}
};
item.setAttr({
b: 1
});
<pre id="result"></pre>
<p id="item">item</p>
相关文章:
- 使用jQuery来foreach iframe-src,并通过函数获取ID和操作
- Javascript函数获取元素内容
- 从Javascript函数获取字符串
- Jasmine测试工厂函数调用本地函数和另一个函数-获取错误:应该是间谍,但得到了function
- 从 JavaScript 函数获取 NaN 尝试多次获取相同的数据
- 从 JS 函数获取 PHP 中的值
- 如何用一个函数获取所有javascript变量
- Javascript-函数获取数组元素参数未定义/为null
- 从回调函数获取xhr状态
- 有没有一种方法可以让watch函数获取被监视文件的名称
- 从JQuery到Javascript函数获取表单对象
- 使用react.js从api函数获取json数据
- 从javascript中的递归函数获取undefined
- 使用sails.js中的beforeConnect函数获取客户端套接字
- 如何通过类名和过滤函数获取属性值
- 从php函数获取值到javascript
- 从外部函数获取参数名称
- 从方法js中的函数获取对象属性
- 使用Jquery.load()函数获取变量和页面片段
- 使用onclick函数获取点击的元素jquery