函数count()返回1,2,3 ...如何创建构造函数Count?
var count = new Count();
count(); // 1
count(); // 2
答案 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
在大多数情况下,这更有意义。