2013-05-01 1 views
7

я видел какое-то странное ; в начале функции в некотором JQuery плагин исходного кода, как это:Зачем использовать точку с запятой перед определением функции?

;(function ($) {..... 

Может кто-то объяснить, почему они должны использовать ; в этом случае?

+1

Это потому, что некоторые люди просто не заботятся о качестве кода, который они пишут. Точка с запятой позволяет им добавлять новые вещи в свой код, не обращая внимания на то, что было раньше. – Mike

+1

@lan сделано. Помечено это :) –

ответ

11

Эта точка с запятой поможет вам правильно конкатенации новый код в файл, когда ток существовал код в этом файле не включает ; в конце.

Например:

(function() { 

})() // <--- No semicolon 

// Added semicolon to prevent unexpected laziness result from previous code  
;(function ($) { 

})(); 

Без точки с запятой, то второй () бы истолкован как вызов функции, и пытался вызвать обратный результат первой функции

+0

Я не думаю, что это синтаксическая ошибка. Это значит, что второй скрипт не вызовет первый. '()' вызывает функцию, которая в точности соответствует второму сценарию – Ian

+0

. Каковы последствия, если в этом примере нет точки с запятой? –

5

Это только, чтобы быть уверенным в terminate любой предыдущей инструкции.

полу двоеточие перед тем вызова функции является сеть безопасности против каскадных скриптов и/или других плагинов, которые не могут быть закрыты должным образом.

https://github.com/shichuan/javascript-patterns/blob/master/jquery-plugin-patterns/extend.html