log打印函数定义,以及函数期望的输出
console.log prints function definition, along with function expected output
我写了以下代码:
Array.prototype.toMyString = function() {
var _new_line_str = '';
for(var j in this) {
(this.length-1) != j
? _new_line_str += this[j]+';'
: _new_line_str += this[j];
}
return _new_line_str;
};
使用以下代码调用上述方法:
_new_line_str = line_arr.toMyString();
console.log(_new_line_str);
但是使用上面写的console.log(_new_line_str);为toMyString()函数输出后跟函数定义的结果,而不是它的唯一结果。
Output:
this;is;a;result;of;above;code;;;;23function() {
var _new_line_str = '';
for(var j in this) {
(this.length-1) != j
? _new_line_str += this[j]+';'
: _new_line_str += this[j];
}
return _new_line_str;
};
不要使用for in
来遍历数组的元素,您列出了对象属性,包括继承的属性(其中包括您添加的函数)。
for(var j in this) {
for(var j=0; j<this.length; j++) {
From MDN, Array迭代和for…in:
数组索引只是具有整型名称和的可枚举属性在其他方面与一般对象属性相同。没有保证……In将返回任何特定的索引order和,它将返回所有可枚举的属性,包括那些.
还要注意,向不拥有的对象(特别是本机对象)添加意想不到的函数被认为是不好的做法,并且这些函数看起来毫无用处:使用line_arr.join(";")
的join可以得到相同的结果。
相关文章:
- React+Redux-期望reducer是一个函数
- “期望赋值或函数调用,而是看到了表达式.” - 不必要的控制台.log
- Chai 期望 [函数] 抛出一个(错误)未通过测试(使用 Node)
- Js提示:“;期望一个赋值或函数调用,而看到一个表达式“;,Switch语句
- IE10 Javascript”;期望函数”;
- 函数在我期望长度为 17 的地图时返回空
- jquery调整大小函数没有按照我期望的方式工作
- JSINT期望为函数提供新的“前缀”
- x 不是一个函数.你期望 Object.create 用构造函数做什么
- Node sequelize回调承诺期望一个函数,是否有一种方法可以通过函数调用删除已声明的函数
- 为什么't jQuery.index()函数的行为与我所期望的一样
- Javascript函数没有返回期望的值
- 如何将函数设置为期望匿名函数的属性值
- 期望函数抛出错误
- 有人能解释一下这个错误吗:期望一个赋值或函数调用,却看到了一个表达式
- 期望以函数作为参数调用函数
- 我的函数没有产生期望的结果
- JavaScript '不是函数'Vs. '期望功能'
- JavaScript运行时错误:期望函数
- log打印函数定义,以及函数期望的输出