gpt4 book ai didi

Javascript - 原型(prototype)数组打印测试错误

转载 作者:行者123 更新时间:2023-11-30 17:41:15 25 4
gpt4 key购买 nike

下面的 JavaScript 代码包括将一个字母数字数组打印成两个数组,一个字母,一个数字。

我使用了原型(prototype)函数和对象的“复杂”系统。

var utils = {
sdNum: function(a, b) {
return b-a;
},
saNum: function(a, b) {
return a-b;
}
};

var Separator = function() {
this.aNum = Array();
this.aChar = [];
};

Separator.prototype.getNum = function() {
for(var i = 0; i < this.alphanumeric.length; i++ )
if(this.alphanumeric[i] === parseInt(this.alphanumeric[i]))
this.aNum.push(this.alphanumeric[i]);
return this.aNum;

};
Separator.prototype.getChar = function() {
for(var i = 0; i < this.alphanumeric.length; i++ )
if(this.alphanumeric[i] !== parseInt(this.alphanumeric[i]))
this.aChar.push(this.alphanumeric[i]);
return this.aChar;
};

Separator.prototype.sortNum = function(sorting = 'asc', va = this.getNum()) {
if(sorting === 'asc')
return va.sort(utils.saNum);

return va.sort(utils.sdNum);
};
Separator.prototype.sortChar = function(sorting, va = this.getChar()) {
if(sorting === 'asc')
return va.sort();

return va.reverse();
};


var PrintSeparator = function(alphanumeric) {
this.alphanumeric = alphanumeric;
};

PrintSeparator.prototype = new Separator();

PrintSeparator.prototype.printChar = function(sorting = 'asc') {
var tmp_str = '';

tmp_str += '<h2><em>' + sorting + '</em> letter sorting</h2>',
tmp_str += '<p>' + this.sortChar(sorting).join(' - ') + '</p>';

return tmp_str;
}
PrintSeparator.prototype.printNum = function(sorting = 'asc') {
var tmp_str = '';

tmp_str += '<h2><em>' + sorting + '</em> number sorting</h2>',
tmp_str += '<p>' + this.sortNum(sorting).join(' - ') + '</p>';

return tmp_str;
}

当我调用一个函数来检索结果时,一切正常。

var mixedArray1 = new PrintSeparator([11, 'a', 'g', 3, 8, 'c', 'b', 12, 9, 'd', 'f', 10, 'i', 2, 1, 7, 5, 'e', 'h', 4, 6]);

document.write(mixedArray1.printChar('desc'));

当我将上面的主脚本包含到 js 文件中时,NetBeans 在这个函数上出错:

Separator.prototype.sortNum = function(sorting = 'asc', va = this.getNum()) {

错误是Expeted , but found =

相反,如果我将相同的脚本嵌入到 html 页面中,则不会出现错误。

如果我调用js页面<script src="myscript.js"></script>总是有 NetBeans 错误,但它工作正常,相反,如果我调用同一页面 <script src="mysqcript.js"/> id 不起作用。

有没有人可以解释一下原因?

最佳答案

表达式不应放在函数声明中。如果您必须为参数分配默认值,请在函数内执行。

        Separator.prototype.sortNum = function(sorting) {
sorting = (sorting) ? sorting: 'asc';
var va = this.getNum();
if(sorting === 'asc')
return va.sort(utils.saNum);

return va.sort(utils.sdNum);
};

同样适用于:

    Separator.prototype.sortChar = function(sorting) {
var va = this.getChar();
if(sorting === 'asc')
return va.sort();

return va.reverse();
};

重新分级脚本标签:

总是结束script用你的脚本标记。当您使用:<script src="mysqcript.js"/>甚至没有加载脚本。

关于Javascript - 原型(prototype)数组打印测试错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21046715/

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