Function.prototype.call.bind,返回被调用函数和使用.call进行函数分配之间的有效区别

问题描述

据我所知,以下三种方法可以实现完全相同的功能:确定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

特别是,ownsBindownsReturnCallOfOriginal间的有效区别是什么,为什么选择一种方法而不是另两种方法的原因是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)