嘿伙计们是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对象的值
我知道我做错了什么..希望你们能帮助我。找出我的错误。
答案 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?很有趣。