javascript中的拦截原型
谁能给我解释一下这个代码吗?它的意思是什么?如何使用它javascript中的拦截原型,javascript,prototype,Javascript,Prototype,谁能给我解释一下这个代码吗?它的意思是什么?如何使用它 Function.prototype.createInterceptor = function createInterceptor(fn) { var scope = {}; return function () { if (fn.apply(scope, arguments)) { return this.apply(scope, arguments)
Function.prototype.createInterceptor = function createInterceptor(fn) {
var scope = {};
return function () {
if (fn.apply(scope, arguments)) {
return this.apply(scope, arguments);
}
else {
return null;
}
};
};
var interceptMe = function cube(x) {
console.info(x);
return Math.pow(x, 3);
};
//
var cube = interceptMe.createInterceptor(function (x) {
return typeof x === "number";
});
代码无法正常工作,因此我进行了以下编辑:
Function.prototype.createInterceptor = function createInterceptor(fn) {
var scope = {},
original = this; //<-- add this
return function () {
if (fn.apply(scope, arguments)) {
return original.apply(scope, arguments);
}
else {
return null;
}
};
};
var interceptMe = function cube(x) {
console.info(x);
return Math.pow(x, 3);
};
//
var cube = interceptMe.createInterceptor(function (x) {
return typeof x === "number";
});
代码无法正常工作,因此我进行了以下编辑:
Function.prototype.createInterceptor = function createInterceptor(fn) {
var scope = {},
original = this; //<-- add this
return function () {
if (fn.apply(scope, arguments)) {
return original.apply(scope, arguments);
}
else {
return null;
}
};
};
var interceptMe = function cube(x) {
console.info(x);
return Math.pow(x, 3);
};
//
var cube = interceptMe.createInterceptor(function (x) {
return typeof x === "number";
});
哦,ic。。。。如果fn.applyscope,arguments{return original.applyscope,arguments;}那代码呢?你能解释得更具体些吗?谢谢。@user430926如果调用验证器/拦截器函数fn,将返回一个真实结果,然后调用原始函数original并返回其结果。用于传递所有参数。ohh ic。。。。如果fn.applyscope,arguments{return original.applyscope,arguments;}那代码呢?你能解释得更具体些吗?谢谢。@user430926如果调用验证器/拦截器函数fn,将返回一个真实结果,然后调用原始函数original并返回其结果。用于传递所有参数。