试图将此函数包装在一个对象中

时间:2014-06-11 20:03:40

标签: javascript function oop methods

对于模糊和混淆所有人感到抱歉,我感谢所有的反馈,但让我解释一下我想要做什么。

我想用两种方法创建一个名为Multiplier的对象:multiply和getCurrentValue 乘法应该最初返回提供的数字* 1,从那时起,无论如何 当前值是提供的数字的倍数,getCurrentValue应该返回最后一个 答案从乘法中返回。

嘿大家我在抓住这个概念时遇到了一些麻烦。

到目前为止,这是我的代码:

var multiplier = {

    function multiply(){

    alert("Input a number to be multiplied by 1")

    var a = prompt("Input your desired number");

    var b = a * 1;

        return alert(b);

    }

}

multiply();

任何帮助或进一步解释如何进行此操作将不胜感激

1 个答案:

答案 0 :(得分:1)

var multiplier = {
    lastValue: null,

    getCurrentValue: function() {
        return lastValue;
    }, 

    multiply: function() {
        alert("Input a number to be multiplied by 1")
        var a = prompt("Input your desired number");
        var b = a * 1;
        lastValue = b;
        return alert(b);
    }
}

这应该做你想要的。您正在定义一个名为multiplier的对象,它有两个函数和一个保存最后一个值的变量。

当然,还有其他方法可以做到这一点,但你的问题有点模糊。

更加面向对象的方法就是这样。

function Multiplier() {
    var lastValue = null;
    this.getCurrentValue = function() {
        return lastValue;
    };

    this.multiply = function() {
        alert("Input a number to be multiplied by 1");
        var a = prompt("Input your desired number");
        var b = a * 1;
        lastValue = b;
        return alert(b);
    }
}

使用这种方法,您的lastValue变量是私有的。你只暴露了这两个功能。现在,您可以在需要时创建这些对象中的新对象,如此。

var myMultiplier = new Multiplier();

你可以像这样调用乘法器上的函数。

myMultiplier.multiply();