在Javascript中__definegetter__和__definesetter__介绍

在Javascript中__definegetter__和__definesetter__介绍
吸气剂是获取属性值的一种方法,而定值器是设置属性值的一种方法。对于任何预定义的核心对象或用户自定义对象,都可以定义吸气剂和二传手方法,以便向现有对象添加新属性。

有两种方法定义吸气剂或二传手方法:

1。对象初始化的定义

2。在对象的定义是由__definegetter__定义对象的方法,__definesetter__

当我们使用对象初始化来定义吸气剂和set方法时,惟一要做的就是向get方法添加get,并将set添加到set方法中。

另一个需要注意的是,方法没有参数,而且set方法必须有一个参数,即要设置的属性的新值。

例如:

复制代码代码如下所示:

O = {

值:9,

获取b(){返回这个值;},

设置setter(x){ this.value = x;}

}
在定义对象添加一个getter或setter方法的目的是通过特殊的方法,__definegetter__和__definesetter__。两者的功能要求,一是getter或setter的名字,给出的字符串,第二个参数是一个getter或setter函数

例如,我们将日期属性添加到日期对象中:

复制代码代码如下所示:

日期。原型。__definegetter__('year功能(){ return this.getfullyear();});

日期。原型。__definesetter__('year功能(Y){ this.setfullyear(Y)});
var现在=新日期;

警报(现在,一年);

now.year = 2006;

警戒(现在);
至于哪种形式主要是由个人的编程风格所采用,它在第一种形式中更为紧凑,更易于理解,但是如果你想在对象定义之后添加消气剂或设置器,或者对象的原型不是你写的或内置的,它必须以第二种方式进行。

以下是添加innerText属性Mozilla浏览器的实现:

复制代码代码如下所示:

__definegetter__ HtmlElement。原型。



InnerText

/ /定义得到innerText价值getter方法,

所以现在你可以读它了!

{

VaR TextRange = this.ownerdocument.createrange();

使用范围来检索对象的内容

textrange.selectnodecontents(本);

只获取对象节点的内容

返回textrange.tostring();

给innerText的 /节点内容的价值

}

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部