问题描述
据我所知,以下三种方法可以实现完全相同的功能:确定Element.prototype
是否具有本机属性tagName
,而与Element.prototype.hasOwnProperty
在本地被覆盖无关:
var ownsBind = Function.prototype.call.bind( Object.prototype.hasOwnProperty );
var ownsReturnCallOfOriginal = function ownsReturnCallOfOriginal( obj,prop ) {
return Object.prototype.hasOwnProperty.call(obj,prop);
}
var ownsAssigned = Object.prototype.hasOwnProperty;
var EP = Element.prototype;
console.log( ownsBind( EP,'tagName' ) ); // true
console.log( ownsReturnCallOfOriginal( EP,'tagName' ) ); // true
console.log( ownsAssigned.call( EP,'tagName' ) ); // true
特别是,ownsBind
和ownsReturnCallOfOriginal
之间的有效区别是什么,为什么选择一种方法而不是另两种方法的原因是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)