Javascript:原型函数中的变量是否跨对象共享?

Javascript:原型函数中的变量是否跨对象共享?,javascript,Javascript,\u ioSocket.on部分只表示任何异步回调。如果我这样做: var Socket = (function() { var Socket = function(ioSocket) { this._ioSocket = ioSocket; }; Socket.prototype = { release: function() { var some = 0; this._ioSock

\u ioSocket.on
部分只表示任何异步回调。如果我这样做:

var Socket = (function() {

    var Socket = function(ioSocket) {
        this._ioSocket = ioSocket;
    };

    Socket.prototype = {

        release: function() {
            var some = 0;

            this._ioSocket.on('ack', function() {
                some = some + 1;
                console.log(some);
            });
        }
    return Socket;
}());

如果
on('ack')
回调可以随机触发,那么多次是否保证控制台始终打印1?或者,由于所有套接字都指向相同的
某个
变量,是否可能会打印其他内容?

只要每次调用release只导致调用一次
。在
回调上,
.release()
将始终打印1,由于每次对
release
的新调用都会创建变量
some

的新副本,如果您先尝试一下会怎么样?虽然这不是一个坏主意,但我认为我可能会遇到误报。
如果没有调用release函数,一些
将是
0
,或者如果调用了
1
(并将被记录)。这是因为每次调用
release
函数时
some
都设置为0。一次是什么意思?总共一次?每次release()调用一次?@user2820379是,每次
release()一次
call.
some
只是函数中的局部变量,每次调用
release
时都会创建
some
的新副本。
new Socket(ioSocket).release()