使用对象并在JavaScript中创建返回值的方法

时间:2011-09-16 20:30:13

标签: javascript object methods

这让我发疯,因为我在Google上找不到任何东西。也许是因为我不知道正确的搜索术语。但这就是我想要做的。

我想创建一个像对象一样的函数。我认为它被称为方法,但我可能是错的。

检查一下,这是我希望它做的一些伪代码。

function myMethod(){
var p = this.getAttribute('x');
var p = p+1;
return p;
}

function otherFunction(){
var q = document.getElementByID('Element').myMethod();
alert(q);
}

所以,我无法让它发挥作用。它一直说myMethod()undefined而不是函数。

2 个答案:

答案 0 :(得分:4)

如果您希望myMethod在元素上可用,则必须将其附加到元素'原型

Element.prototype.myMethod = myMethod;

prototype的概念很大,但它归结为这样一个事实:函数实例的功能可以像你描述的那样“对象”。

在这种情况下,页面上的任何元素都是Element函数的实例。因此,任何元素都可以使用.myMethod,您可以调用它。 (Element是一个函数,虽然你没有真正处理它 - 实例是可用的,因为你把它们放在HTML中,所以你绕过Element。)

其次,如果你有var p,那么另一个var p没有多大意义。只需使用p = p + 1p++(添加一个的快捷方式)。

答案 1 :(得分:1)

function myMethod(element){
    var p = element.getAttribute('x');
    var p = p+1;
    return p;
}

function otherFunction(){
    var q = myMethod(document.getElementByID('Element'));
    alert(q);
}

显然,最好不在全局范围内声明这些,但基本上是javascript正在寻找一个myMethod(),它是您正在选择的DOM元素的成员,但您实际上已经声明了功能独立。

另一个选择是通过原型继承添加方法。