<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
코드를 많이 작성하고 전역 반전을 정의했기 때문입니다. , 글로벌 상황의 영향을 받았기 때문에 작동하지 않을 것입니다.
은 모두 매개변수 전달을 제안하지만, 코드에서 매개변수 또는 전역 변수 전달의 결과가 동일하다는 사실을 알고 계셨나요? nickNames
및 socket
전역 변수는 두 개뿐입니다. (현재 코드에만 해당)
그래서 전역 변수의 개수의 문제가 아니라 기능적 기능을 잘 캡슐화해야 하는지의 문제라고 생각합니다.