Constructer函数的方法不起作用

时间:2015-09-27 13:45:53

标签: javascript

我写了以下代码

<!DOCTYPE html>
<html>
<body>
    <h1 id="para"></h1>
    <script>                
        function Dice(sides) {  
            this.sides = sides; 
            this.roll = function() {                                            
                var randomNumber = Math.floor(Math.random() * this.sides) + 1;
                console.log(randomNumber);
            }                       
        }

        var dice = new Dice(6);
        var dice10 = new Dice(10);
    </script>
</body>
</html>

当我检查控制台时,它不会打印随机数字&amp;似乎我的'roll'方法无效。如果我在没有roll方法的情况下编写代码,它就可以了。但我想提高我的JS技能,所以我很想知道我的构造函数中的roll方法有什么问题。

3 个答案:

答案 0 :(得分:4)

您需要调用您的roll功能:

var dice = new Dice(6);
dice.roll();

答案 1 :(得分:1)

尝试在实例化后调用对象的方法:

dice.roll();
dice10.roll();

在构造函数调用之后,您没有看到roll()的结果,因为构造函数定义了方法,而不是调用它(在您的情况下)。

答案 2 :(得分:0)

添加行

dice.roll();

dice10.roll();

最后。

问题是您定义了构造函数,但没有调用roll。