在javascript中使用具有函数的对象

时间:2014-06-03 06:16:33

标签: javascript

嘿伙计们是javascript开发的新手。我已经了解了javascript对象,我已经用它完成了一些代码..我的代码

function afunction() { 
var num = 10;
return num;
}

afunction.randomfunction(function() {

return {

"name": "somename"

"age": 12
}

})

当我使用afunction.randomfunction.name;调用该函数时,它给出了类似

的错误
" underfined is not a function"

我不知道为什么会这样。我需要的是我需要使用afunction.randomfunction.name;来获取name对象的值

我知道我做错了什么..希望你们能帮助我。找出我的错误。

2 个答案:

答案 0 :(得分:2)

您正在尝试调用 randomfunction并将其传递给函数表达式,而不是仅仅指定函数表达式。

obj.foo(x)更改为obj.foo = x

然后你可以调用它 - obj.foo() - 并从中访问返回值:obj.foo().property


function afunction() {
    var num = 10;
    return num;
}

afunction.randomfunction = function () {
    return {
        "name": "somename",
        "age": 12
    };
};

alert(afunction.randomfunction().name);

答案 1 :(得分:1)

这种情况正在发生,因为randomFunction中未定义函数aFunction。您需要将其定义为单独的函数,如此

function randomFunction(){
    //code
}

并通过randomFunction();

进行调用

或者如果要创建具有公共功能的对象,可以创建它,例如像

function YourObject(){

    var num = 10; //think of this as a constructor

    this.getNum = getNum; //this "attaches" the getNum() function code to the getNum variable of YourObject
    function getNum(){
        return this.num;
    }

    this.randomFunction = randomfunction;
    function randomFunction(){
        //code
    }
}

之后你可以像这样调用对象的方法

var yourObject = new YourObject(); //instantiate
console.log(youObject.getNum()); //print the value of yourObject.num to console
yourObject.randomFunction(); //execute your random function

注意:在JavaScript中创建对象有更多方法,这只是一个。您可能会发现Which way is best for creating an object in javascript? is "var" necessary before variable of object?很有趣。