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

时间:2014-06-25 10:21:45

标签: javascript

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;
}());

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

new Socket(ioSocket).release()

多次,是否保证控制台将始终打印1,因为on('ack')回调可以按随机顺序触发?或者是否可能会打印其他内容,因为所有套接字都指向相同的some变量?

1 个答案:

答案 0 :(得分:0)

只要每次发布调用只导致一次调用.on回调,那么.release()将始终打印1,因为每次对release的新调用都会创建一个新副本变量some