var a = [1,1,4];
var arrayProto = Array.prototype;
var arrayMethods = Object.create(arrayProto);
Object.defineProperty(a, 'push', {
value: function(){
var arguments$1 = arguments;
console.log("a.push方法的参数");
console.log(arguments);
// avoid leaking arguments:
// http://jsperf.com/closure-with-arguments
var i = arguments.length;
var args = new Array(i);
while (i--) {
args[i] = arguments$1[i];
}
console.log("a.push方法的参数构成新数组");
console.log(args);
var original = arrayProto['push'];
var result = original.apply(this, args);
console.log("旧数组以新数组的数据执行监控的方法,返回更新后的数组");
console.log("更新后的数组");
console.log(this);
console.log("--触发响应操作,比如更新视图");
return result;
},
enumerable: true,
writable: true,
configurable: true
});