如何创建构造函数Count?

时间:2013-08-22 09:05:25

标签: javascript object constructor

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

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

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

counter = new Count();
counter.count(); //1
counter.count(); //2

答案 2 :(得分:0)

全局声明变量:

var counter=0;

创建一个函数来返回值:

function count() {
  return ++counter;
}

答案 3 :(得分: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

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