Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用wrap()扩展原型方法,但类不是';不可接近_Javascript_Prototype_Prototypejs_Extend - Fatal编程技术网

Javascript 使用wrap()扩展原型方法,但类不是';不可接近

Javascript 使用wrap()扩展原型方法,但类不是';不可接近,javascript,prototype,prototypejs,extend,Javascript,Prototype,Prototypejs,Extend,我有一个网站,在名为calculator.js的文件中创建了一个原型类,其中包含以下代码: !function() { var LoanCalculator = Class.create({ initialize: function() {}, exampleMethod: function(value) { console.log(value); } } 在一个单独的文件example.js中

我有一个网站,在名为
calculator.js
的文件中创建了一个原型类,其中包含以下代码:

    !function() {

    var LoanCalculator = Class.create({
        initialize: function() {},

        exampleMethod: function(value) {
            console.log(value);
        }
    }
在一个单独的文件example.js中,我试图扩展该类,并使用
wrap()
重写
exampleMethod

这一切似乎都是正确的,但我得到的是:

未定义贷款计算器


我确信这是一个范围问题,因为类是在
中创建的!函数(){
但我不知道如何解决这个问题。

您对
wrap
的调用是否与
loanclulator
声明在同一个函数中?如果不是,请将它们移到同一个函数中。(如果由于某种原因无法做到这一点,为什么
loanclulator
在它自己的函数中?)您的
var LoanCalculator
在错误的范围内。而且您似乎甚至没有在定义该函数的地方调用该函数;这应该是一个IIFE吗?设法让它工作,但前提是它在php文件中,并使用类的初始化实例,而不是重写基类。该函数在php上调用文件。我无法编辑calculator.js文件。我认为类的创建方式使得它很难扩展,因为它的作用域不是很好。我认为可能会有一种更优雅的方法来解决它,但似乎没有。
LoanCalculator.exampleMethod = LoanCalculator.exampleMethod.wrap(function (parentMethod, value) {
    return parentMethod(value);
});