具有相同方法和不同实现的javascript
我有js文件(rework.js)和下面的函数具有相同方法和不同实现的javascript,javascript,jquery,Javascript,Jquery,我有js文件(rework.js)和下面的函数 /** * Java script functions to set comments for selected rework reason. */ function setReworkCheckFields() { var note = $("#rework_note").val(); var reworknoteImage = document.getElementsByName("reworknote_image");
/**
* Java script functions to set comments for selected rework reason.
*/
function setReworkCheckFields() {
var note = $("#rework_note").val();
var reworknoteImage = document.getElementsByName("reworknote_image");
var reworknoteScript = document.getElementsByName("reworknote_script");
var reworknoteVoice = document.getElementsByName("reworknote_voice");
var reworknoteMusic = document.getElementsByName("reworknote_music");
if ($(reworknoteImage).is(':checked')) {
$("#reworknote_image_note").val(note);
}
if ($(reworknoteScript).is(':checked')) {
$("#reworknote_script_note").val(note);
}
if ($(reworknoteVoice).is(':checked')) {
$("#reworknote_voice_note").val(note);
}
if ($(reworknoteMusic).is(':checked')) {
$("#reworknote_music_note").val(note);
}
}
我已经在html中导入了这个js文件,并添加了相同的方法和不同的实现,如下在html中所示
<script type='text/javascript' src='style/js/rework.js'></script>
<script type='text/javascript'>
function setReworkCheckFields() {
var note = $("#rework_note").val();
var reworknoteImage = document.getElementsByName("reworknote_image");
var reworknoteScript = document.getElementsByName("reworknote_script");
var reworknoteVoice = document.getElementsByName("reworknote_voice");
var reworknoteMusic = document.getElementsByName("reworknote_music");
if ($(reworknoteImage).is(':checked')) {
$("#reworknote_image_note").val(note);
} else {
$("#reworknote_image_note").val(null);
}
if ($(reworknoteScript).is(':checked')) {
$("#reworknote_script_note").val(note);
} else {
$("#reworknote_script_note").val(null);
}
if ($(reworknoteVoice).is(':checked')) {
$("#reworknote_voice_note").val(note);
} else {
$("#reworknote_voice_note").val(null);
}
if ($(reworknoteMusic).is(':checked')) {
$("#reworknote_music_note").val(note);
} else {
$("#reworknote_music_note").val(null);
}
}
</script>
函数setReworkCheckFields(){
var注释=$(“#返工注释”).val();
var reworknoteImage=document.getElementsByName(“reworknote_image”);
var reworknoteScript=document.getElementsByName(“reworknote_脚本”);
var reworknoteVoice=document.getElementsByName(“reworknote_voice”);
var reworknoteMusic=document.getElementsByName(“reworknote_music”);
if($(reworknoteImage).is(':checked')){
$(“#reworknote_image_note”).val(注);
}否则{
$(“#reworknote_image_note”).val(空);
}
if($(reworknoteScript).is(':checked')){
$(“#reworknote_script_note”).val(注);
}否则{
$(“#reworknote_script_note”).val(空);
}
if($(reworknoteVoice).is(':checked')){
$(“#修改注释(语音注释)”).val(注释);
}否则{
$(“#reworknote_voice_note”).val(空);
}
if($(reworknoteMusic).is(':checked')){
$(“#reworknote_music_note”).val(note);
}否则{
$(“#reworknote_music_note”).val(空);
}
}
并调用下面的javascript函数
<table>
<tr>
<td>Image: <input type="checkbox" name="reworknote_image" ${reworknote_image.workingchecked} onchange="setReworkCheckFields()"/></td>
<td>Script: <input type="checkbox" name="reworknote_script" ${reworknote_script.workingchecked} onchange="setReworkCheckFields()"/></td>
<td>Voice: <input type="checkbox" name="reworknote_voice" ${reworknote_voice.workingchecked} onchange="setReworkCheckFields()"/></td>
<td>Music: <input type="checkbox" name="reworknote_music" ${reworknote_music.workingchecked} onchange="setReworkCheckFields()"/></td>
</tr>
</table>
图片:
脚本:
声音:
音乐:
你能告诉我这个流程是如何运作的吗。这对写入有效吗?第二个函数将重新声明第一个函数,因此当您调用
setReworkCheckFields()
时,您将运行第二个函数
是的,它是有效的。这就像重写变量一样
请记住,如果要在代码中再次声明此函数,它还将重新声明此定义。在某些情况下,这是有用的行为,但您必须重新定义js函数。否-流程是,只有最后一个函数在js范围内定义,因为它会覆盖任何具有类似名称的js代码 在javascript中,没有像Java或其他语言那样的函数重载。 您可以将代码包装到不同的名称空间:
var MyFirstNameSpace = {
setReworkCheckFields: function(){
// code goes here...
}
};
var MySecondNameSpace = {
setReworkCheckFields: function(){
// code goes here...
}
};
然后可以调用MyFirstNameSpace.setReworkCheckFields()或MySecondNameSpace.setReworkCheckFields()
一般来说,重写javascript全局作用域不是一个好的做法,因为您不知道您的项目将包含哪些其他js代码,这将打乱您自己的代码。我可能弄错了,但我相信第二个函数将重写rework.js中的函数