from distutils.sysconfig import get_python_lib
print get_python_lib()
Я считаю, что это то, что вам нужно:
var foo = (function () {
var state = 0;
return function () {
return state++;
};
})();
Или, следуя примеру из Википедии :
var makeAccumulator = function (n) {
return function (x) {
n += x;
return n;
};
};
var acc = makeAccumulator(2);
alert(acc(2)); // 4
alert(acc(3)); // 7
JavaScript - один из тех языков, которые, IMHO, имеют отличную поддержку для функций граждан первого класса.
Поскольку функции Javascript являются объектами первого класса, это можно сделать следующим образом:
var state = 0;
var myFunctor = function() { alert('I functored: ' + state++);};
Переменная состояния
будет доступна для myFunctor
] в своем локальном замыкании. (Глобальный в этом примере). В других ответах на этот вопрос есть более сложные примеры.
Однако нет эквивалента просто «реализации оператора ()» для некоторого существующего объекта.