gpt4 book ai didi

javascript - 在 javascript 中使用 setter 或方法之间的区别

转载 作者:行者123 更新时间:2023-12-03 00:46:03 24 4
gpt4 key购买 nike

我正在阅读有关 JavaScript 中的 getter 和 setter 的内容。我想知道这两种使用和不使用 setter 的编码方式是否有区别

第一种方式,没有 setter 。

>obj1 = {
arr: [];
}
>obj1.arr.push('first')
>obj1.arr
[ 'first' ]

第二种方式,使用 setter。

>obj2 = {
set add(data) {
this.arr.push(data);
},
arr: []
}
>obj2.add = 'first'
>obj2.arr
[ 'first' ]

最佳答案

示例中的 setter 语法并不能真正阻止客户端代码仍然使用直接 push 调用(如第一个代码块中所示)添加值。所以区别在于您只是添加了另一种方法来完成相同的事情。

为了进行公平的比较,您必须在两种替代方法中定义相同的方法:一次作为普通方法,一次作为 setter 方法,然后区别只是语法如何参数通过 obj.add('first')obj.add = 'first' 传递给方法。

在这个实际情况中,我会投票反对 setter ,因为它给人一种错误的印象,即如果您“分配”另一个值,则第一个分配的值将被覆盖:

obj.add = 'first';
obj.add = 'second';

...但显然情况并非如此:两个值现在都存在于对象中。

关于javascript - 在 javascript 中使用 setter 或方法之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53248298/

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