gpt4 book ai didi

具有相同方法但实现不同的javascript

转载 作者:行者123 更新时间:2023-11-30 18:07:20 25 4
gpt4 key购买 nike

我有 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");
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>

并调用下面的 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>

有人能告诉我这个流程是如何运作的吗?这对写有效吗?

最佳答案

否 - 流程是只有最后一个函数在 js 范围内定义,因为它会覆盖任何具有相似名称的 js 代码。

在 javascript 中,没有像 Java 或其他语言那样的函数重载。不过,您可以将代码包装到不同的 namespace :

var MyFirstNameSpace = {
setReworkCheckFields: function(){
// code goes here...
}
};

var MySecondNameSpace = {
setReworkCheckFields: function(){
// code goes here...
}
};

然后您可以调用 MyFirstNameSpace.setReworkCheckFields() 或 MySecondNameSpace.setReworkCheckFields();

一般来说,覆盖 javascript 全局范围不是好的做法,因为您不知道您的项目将包含哪些其他 js 代码,这会弄乱您自己的代码。

关于具有相同方法但实现不同的javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15519422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com