Javascript getter方法

时间:2011-04-03 16:22:35

标签: javascript

我有一个像这样的javascript getter方法:

function passTags()
{
var tags = document.getElementById('tags').value;


    this.getTag=function()
    {
        return this.tags;
    }
}

我怎么称呼它?

2 个答案:

答案 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.tagsundefined

答案 1 :(得分:0)

您不应将tags定义为var tags = ...,而应定义为this.tags = ...

- 编辑

Russ的解决方案是'更好':tags现在是私有的。