>백엔드 개발 >PHP 튜토리얼 >자바스크립트 매개변수 사용 방법에 대해

자바스크립트 매개변수 사용 방법에 대해

WBOY
WBOY원래의
2016-08-08 09:06:42953검색

<code>var nickNames = {};

handleMessageBroadcasting = function(socket, nickNames){
    socket.on('message', function(message){
        socket.broadcast.to(message.room).emit('message', {
            text: nickNames[socket.id] + ': ' + message.text
        });
    });
};

handleMessageBroadcasting(socket, nickNames);

</code>

위의 handlerMessageBroadcasting 함수는 내부적으로 nickNames를 사용합니다. nickNames를 매개변수로 전달한 후 사용해야 하나요? 아니면 전역 변수로 직접 사용해야 합니까? 왜?

답글 내용:

<code>var nickNames = {};

handleMessageBroadcasting = function(socket, nickNames){
    socket.on('message', function(message){
        socket.broadcast.to(message.room).emit('message', {
            text: nickNames[socket.id] + ': ' + message.text
        });
    });
};

handleMessageBroadcasting(socket, nickNames);

</code>

위의 handlerMessageBroadcasting 함수는 내부적으로 nickNames를 사용합니다. nickNames를 매개변수로 전달한 후 사용해야 하나요? 아니면 전역 변수로 직접 사용해야 합니까? 왜?

매개변수를 전달하면 코드 결합을 줄일 수 있습니다

프로그래밍에서 가장 금기시되는 것은 전역 변수입니다. 프로젝트 규모가 상대적으로 작더라도 이 좋은 습관을 기르는 것이 좋습니다.

매개변수를 전달하는 것이 좋습니다. 전역 변수는 전역 환경을 오염시킬 수 있습니다

가능하면 전역 변수를 사용하세요

위 분들 말씀이 맞습니다. 특히 매개변수를 전달하는 것이 더 좋습니다. 당시에는 다른 곳에서 매개변수를 사용할 때 어떻게 설정하든 js 코드를 많이 작성하고 전역 반전을 정의했기 때문입니다. , 글로벌 상황의 영향을 받았기 때문에 작동하지 않을 것입니다.

은 모두 매개변수 전달을 제안하지만, 코드에서 매개변수 또는 전역 변수 전달의 결과가 동일하다는 사실을 알고 계셨나요? nickNamessocket 전역 변수는 두 개뿐입니다. (현재 코드에만 해당)

그래서 전역 변수의 개수의 문제가 아니라 기능적 기능을 잘 캡슐화해야 하는지의 문제라고 생각합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.