Javascript 调用其他对象方法
Javascript calling other object method
我有这两个对象:A 和 B。我想从 B 调用 A.something,但不起作用...
A = function()
{
function something()
{
//do something
}
}
B = function()
{
A.something();
}
这会引发 "typeError, A.something(); is not a function"...
不要将 A
声明为函数本身,将其声明为对象:
A = {}
然后在里面放置 something
作为你的函数:
A = {
something: function() {
//do something
}
}
您现在可以致电 A.something()
。
您当前的代码试图将 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
函数中返回一个对象。
首先,要在 javascript 中创建一个对象,您必须像这样定义 class 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();
}
我有这两个对象:A 和 B。我想从 B 调用 A.something,但不起作用...
A = function()
{
function something()
{
//do something
}
}
B = function()
{
A.something();
}
这会引发 "typeError, A.something(); is not a function"...
不要将 A
声明为函数本身,将其声明为对象:
A = {}
然后在里面放置 something
作为你的函数:
A = {
something: function() {
//do something
}
}
您现在可以致电 A.something()
。
您当前的代码试图将 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
函数中返回一个对象。
首先,要在 javascript 中创建一个对象,您必须像这样定义 class 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();
}