我有一个像这样的javascript getter方法:
function passTags()
{
var tags = document.getElementById('tags').value;
this.getTag=function()
{
return this.tags;
}
}
我怎么称呼它?
答案 0 :(得分:3)
看起来你已经设置了一个构造函数,所以就像这样
var t = new passTags;
t.getTag();
this.tags
未定义,因此t.getTag()
将返回undefined
。如果您打算返回tags
的值,则将其更改为
function passTags() {
var tags = document.getElementById('tags').value;
this.getTag = function() {
return tags;
}
}
请记住,虽然构造函数执行后捕获的值不会更新,因此 example will demonstrate 。另外一个建议是使用Pascal case作为函数名,这样很明显它是一个构造函数。
目前设置代码的方式如果不是构造函数,那么首先必须执行passTags
函数。这将定义全局范围中的函数getTag
,然后可以执行该函数。这将返回undefined
,但this.tags
为undefined
。
答案 1 :(得分:0)
您不应将tags
定义为var tags = ...
,而应定义为this.tags = ...
- 编辑
Russ的解决方案是'更好':tags
现在是私有的。