gpt4 book ai didi

javascript - 为什么以及何时我们应该在 ember.js 中使用 argument.length

转载 作者:行者123 更新时间:2023-12-02 18:17:58 26 4
gpt4 key购买 nike

以下代码取自here 。但我不明白,为什么作者在使用 fullName 作为计算属性时,他用 arguments.length 而不是 value.length 来检查 setter,这可能与分配给函数的 value 变量更相关。我想知道有什么区别以及为什么他在这种情况下使用arguments.length

App.Person = Ember.Object.extend({
firstName: null,
lastName: null,

fullName: function(key, value) {
// setter
if (arguments.length > 1) {
var nameParts = value.split(/\s+/);
this.set('firstName', nameParts[0]);
this.set('lastName', nameParts[1]);
}

// getter
return this.get('firstName') + ' ' + this.get('lastName');
}.property('firstName', 'lastName')
});


var captainAmerica = App.Person.create();
captainAmerica.set('fullName', "William Burnside");
captainAmerica.get('firstName'); // William
captainAmerica.get('lastName'); // Burnside

最佳答案

if 子句确保该值已由调用者传递。

检查 arguments 的长度是正确的方法,即使您可能会遇到类似 if (value) 的事情或if (value !== undefined)或不太仔细的代码中的类似内容。检查arguments.length区分仅使用一个参数(作为 getter)调用的函数和使用两个参数(作为 setter)调用的函数,其中第二个参数为 undefined .

关于javascript - 为什么以及何时我们应该在 ember.js 中使用 argument.length,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19099463/

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