我在对象中有以下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:由于函数对象的长度返回了para的数量,是否还有另一种方法来划分js中的属性和函数?
答案 0 :(得分:3)
对于Function对象,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
为if (typeof this[key] === 'function') { ... }
仅在此处使用单个参数调用。)
因为函数对象的长度返回params的数量,所以 还有另一种方法来划分js中的属性和函数吗?
当然:只需查看酒店的类型:
{{1}}