为什么在枚举属性/函数时键长度不准确
Why is key.length not accurate when enumerating properties/functions
我在对象中有以下toString方法:
/**
* @method toString
* @public
*/
toString: function () {
var toString = "toString: ";
for (key in this) {
if (this.hasOwnProperty(key)) {
console.log(key);
console.log(this[key].length);
if(this[key].length < 50) {
toString +=key + ": " + this[key] + " 't ";
}
}
}
return toString;
}
为什么我的函数(主体超过 50 个字符)返回长度为 2/3?
编辑:我正在尝试获取属性值的长度以将它们划分为属性和函数。
edit2:由于函数对象的长度返回参数的#,有没有其他方法可以在JS中划分属性和函数?
对于函数对象,length 属性表示其形式参数(函数期望的参数)的总数。例如:
var foo = function(a) {};
foo.length; // 1
请注意Function.length
和arguments.length
之间的区别:
var bar = function(a, b) {
console.log(bar.length);
console.log(arguments.length);
};
bar(42);
这将在第一行记录2
(因为形式参数的数量是给定函数的常量值),但在第二行中1
(因为bar
仅在此处使用单个参数调用)。
由于函数对象的长度返回参数的 #,因此 还有另一种方法可以在JS中划分属性和函数吗?
当然:只需检查属性的类型:
if (typeof this[key] === 'function') { ... }
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 为什么会出现错误,“UncaughtTypeError:undefined不是函数”
- TypeError:_this.store.getState在使用来自Redux的连接时不是函数
- Uncaught TypeError:undefined不是函数-ember js
- cordova:例外:财产'requestFileSystem'的[对象全局]不是函数
- 未捕获的类型错误:$(..).dataTable不是函数
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- angular.js:13424错误:[ng:areq]参数'fn'不是函数,getObject
- 未定义不是函数:模块导出
- Mongoose TypeError:实例化模式类型的对象时,对象不是函数
- 类型error primeFactors.for不是函数
- 得到"未定义不是函数“;使用显示原型图案时出错
- jQuery使用ajax自动完成问题-TypeError:this.source不是函数
- 未捕获的类型错误:undefined不是函数$
- Reactjs URL.createObjectURL不是函数
- poster typeerror用户不是函数
- 为什么Grunt Copy给了我一个'undefined不是函数'警告
- 为什么在枚举属性/函数时键长度不准确
- node.js下javascript中的日期函数不准确