javascript库中的javascript const

时间:2014-09-08 18:23:10

标签: javascript

我正在尝试编写一个小的javascript库,如下所示。我真正想要的是当我打电话

console.log(tnd().pv);

它应该输出相同的数字,而不是每次都生成新的数字。我知道问题是它每次我控制日志时调用Math.random。但是我该怎么做才能输出相同的数字呢?

(function () {
    var tnd = function() {
        return new tnlib();
    };
    var tnlib = function() {
        this.version = function(){
            console.log('1.0');
        };
        this.pv = Math.random()*10000000000000000;
    };
    if(!window.tnd) {
        window.tnd = tnd;
    }
})();

1 个答案:

答案 0 :(得分:1)

不要在Math.random()的每次调用中执行tnlib,而是作为静态变量执行:

(function () {
    function tnd() {
        return new tnlib();
    }
    function tnlib() {
    }
    tnlib.prototype.version = function(){
        console.log('1.0');
    };
    tnlib.prototype.pv = Math.random()*10000000000000000;
    if (!window.tnd) {
        window.tnd = tnd;
    }
}());

(或者,如果您确实需要使pv成为实例属性):

    var staticPv = Math.random()*10000000000000000;
    function tnlib() {
        this.pv = staticPv;
        …
    }