0

据我所知,以下三种方法完成了完全相同的事情:确定是否Element.prototype具有 native property 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什么,选择一种方法而不是其他两种方法的一些原因是什么?

4

0 回答 0