JavaScript:分配"这个"到原型功能

时间:2015-11-05 03:41:07

标签: javascript arrays prototype

我想知道我们如何才能正确绑定"这个"在原型上创建方法时的一个Object实例:

示例:

Array.prototype.myPush = function (element) {
    //call push on the instance of Array that calls this method
}

function push(array, element) {
    array[array.length] = element;
}

我们怎样才能让第一个像第二个一样工作?

1 个答案:

答案 0 :(得分:2)

在原型上调用方法时,this已绑定到调用该方法的对象。

Array.prototype.myPush = function(element) {
  this.push(element);
};

var arr = [1, 3, 4];
arr.myPush(10); // Call method on proto
console.log(arr);

function push(array, element) {
  array.myPush(element); // Same call from function
}

push(arr, 'Hello');
console.log(arr);