我有这两个对象:A和B.我想从B调用A.something,但是没有用...
A = function()
{
function something()
{
//do something
}
}
B = function()
{
A.something();
}
这会引发“typeError,A.something();不是函数”......
答案 0 :(得分:1)
当前代码是函数时,会尝试将A
用作对象。您需要调用函数A()
,但其something
方法仍不可用(因为它未公开)。
如果您希望A
成为对象,可以使用如下对象文字:
A = {
something: function()
{
//do something
}
}
B = function()
{
A.something();
}
或者对于更多经典外观方法,您可以使用new
:
function A()
{
this.something()
{
//do something
}
}
B = function()
{
var a = new A();
a.something();
}
还有更多方法。您可以通过在Object.create
函数中返回一个对象来使用A
或使用更多功能方法。
答案 1 :(得分:0)
不要将A
声明为函数本身,将其声明为对象:
A = {}
然后在地方something
内作为您的职能:
A = {
something: function() {
//do something
}
}
您现在可以致电A.something()
。
答案 2 :(得分:0)
首先,要在javascript中创建一个对象,你必须像这样定义你的类A
(简单方法,不使用原型):
A = function()
{
return {
something = function()
{
//do something
}
}
}
然后通过调用var object = A()
创建您的对象。
所以你的代码最终应该是这样的:
A = function()
{
return {
something = function()
{
//do something
}
}
}
B = function()
{
var aObject = A();
aObject.something();
}