-3

Function count() return 1, 2, 3... 如何创建构造函数Count?

var count = new Count();
count(); // 1
count(); // 2
4

4 回答 4

1
function Count() {
    this.x = 0;
    this.count = function() {
        return (this.x += 1);
    };
}

counter = new Count();
counter.count(); //1
counter.count(); //2
于 2013-08-22T09:29:50.327 回答
1
function Count() {
    var c = 1;
    return function() {
        return c++;
    }
};

var count = new Count(); // count is now a function that adds and returns
count(); // 1
count(); // 2
于 2013-08-22T09:12:52.213 回答
0

构造函数大部分需要返回一个对象,因此在构造函数中返回一个数字只会返回该函数的实例,而不是数字。但是,您可以显式返回一个对象,因此您可以获得的最接近的是:

;(function() {

    var count = 0;

    window.Count = function() {
        return new Number(count += 1);
    }
})()

var a = +new Count // 1
var b = +new Count // 2

当然,你可以这样做:

window.count = (function(){
    var i = 0;
    return function() {
        return i += 1;
    }
})()

var a = count() // 1
var b = count() // 2

在大多数情况下,这更有意义。

于 2013-08-22T09:27:52.883 回答
0

全局声明一个变量:

var counter=0;

创建一个函数来返回值:

function count() {
  return ++counter;
}
于 2013-08-22T09:19:11.700 回答