Javascript 什么是_u定义设置函数和_定义设置函数?

Javascript 什么是_u定义设置函数和_定义设置函数?,javascript,Javascript,每个对象的原型中的\uuuu defineGetter\uuuu()和\uuuu defineGetter\uuuuuuu()函数是什么?有关说明和示例代码,请参见: getter是获取特定属性值的方法。setter是设置特定属性值的方法。您可以在任何预定义的核心对象或支持添加新属性的用户定义对象上定义getter和setter 正如文档(以及@cwallenpole)中所述,\uu define[GS]etter\uuu()函数现在已不推荐使用。这里有更多的细节。我相信函数现在是首选语法。回答

每个
对象的原型中的
\uuuu defineGetter\uuuu()
\uuuu defineGetter\uuuuuuu()
函数是什么?

有关说明和示例代码,请参见:

getter是获取特定属性值的方法。setter是设置特定属性值的方法。您可以在任何预定义的核心对象或支持添加新属性的用户定义对象上定义getter和setter


正如文档(以及@cwallenpole)中所述,
\uu define[GS]etter\uuu()函数现在已不推荐使用。这里有更多的细节。我相信函数现在是首选语法。

回答您的问题
是为对象属性创建getter和setter的老方法。它们允许您将对象的属性用作名称/值对,而在幕后,函数支持这些名称/值对

例如,假设您想引用固定范围内的一些随机数。您可以将这些表示为具有最大范围的单词,它看起来像一个属性

var random = {};
random.__defineGetter__('ten', function() { 
    return Math.floor(Math.random()*10); });
random.__defineGetter__('hundred', function() { 
    return Math.floor(Math.random()*100); });
请注意,虽然上面的示例回答了问题,但您不应使用此解决方案。相反,您应该使用现代形式的getter和setter,因为ES5:

var random = {
    get ten() { return Math.floor(Math.random()*10); },
    get hundred() { return Math.floor(Math.random()*100); }
};
上述任一构造都允许您获得如下所示的随机数:

var myrand = random.ten;
// returns a result in the range 0 to 9

。\uuuu defineGetter\uuuu
这意味着当您引用对象时。[param1]会执行一个函数。
。\uuuuu defineSetter\uuuuu
这意味着当您设置对象时。[param1]会执行一个函数。 例如,像这样:

var myrand = random.ten;
// returns a result in the range 0 to 9
const person={
名字:“约翰”,
姓氏:“doe”,
};
person.uuu defineGetter_uuu('fullName',()=>`${person.firstName}${person.lastName}`);
person.\uuuu defineSetter\uuuuuuu('fullName',v=>{
person.firstName=v.split(“”)[0];
person.lastName=v.split(“”)[1];
});
或者,如果希望
cls
清除控制台

this.\uuuuu定义设置('cls',console.clear);

:-)它的意思是“旧”和“当前未使用”?@DOtNET Ninja-“旧的,不再受支持,不应使用,但仍然存在,以免破坏与已使用它们的人的兼容性”。不推荐使用?古怪的IE 11刚刚增加了对它的支持。@SalmanPK-同时在2014年
IE:Happy 2012 everyone我不能对一个函数做同样的事情吗?那么getter和setter的具体用途是什么?是的,你可以。我的示例不是很好,因为它只显示了getter和setter的纯粹用法。通常,getter和setter将由变量和/或更多计算功能支持。例如,如果有一个名为Temperature的对象,则可以有一个属性C和F,返回C或F中的温度。这些不是真正的属性,而是在对象中的基值之间进行转换的方法(getter)。或者其中一个可以是属性,另一个可以是执行转换的getter。