首页 > 解决方案 > Array.length 是属性而不是方法,但是 .length 如何像方法一样工作?

问题描述

方法可以使用该方法的逻辑从 Array 中获取值。但是length不是数组的方法,虽然我们写array.length的时候返回了一个值,怎么办?

“我是如何知道 .length 是数组的属性?是‘我们都知道()在调用方法时应该有一个方法,但是 .length 不使用 .length 调用()。所以它是对象的属性’ ”。

var arr = [1,2,3,8,6,4,9,5,8,6];
console.log(arr.length); //10 - 
console.log(Math.max(...arr)); //9

max() 正在返回一个值,因为它是方法

作为属性,.length 如何返回值?

标签: javascript

解决方案


您可以获取一个属性并从中分配或获取一个值,但它是 iomplementes 作为settergetter。这允许将函数用作简单属性并使用分配的值来更改其他内容,例如删除项目。

var object = {
    l: 42,
    get length() { return this.l; },
    set length(l) { this.l = l; },
}

console.log(object.length);
object.length = 2;
console.log(object.length);


推荐阅读