Javascript 调用其他对象方法
Javascript calling other object method
我有两个对象:A和B。我想从B打电话给A.something,但不起作用...
A = function()
{
function something()
{
//do something
}
}
B = function()
{
A.something();
}
这会抛出"typeError, 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
函数中返回对象来使用功能更强大的方法。
不要将A
声明为函数本身,将其声明为对象:
A = {}
然后在里面放置something
作为你的函数:
A = {
something: function() {
//do something
}
}
您现在可以拨打A.something()
。
首先,要在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();
}
相关文章:
- 序列化数据属性中对象的最可靠方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 如何从对象的原型方法访问JavaScript对象属性
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 设置嵌套对象属性的更好方法
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 对象不支持属性或方法“自动完成”
- call()和apply()实际上是用来欺骗方法处理类似数组的对象的
- 对象文字方法上的Javascript绑定不起作用
- Meteor应用程序无法运行-对象#<编译器>没有方法'主机'
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- Underscore.js某些对象的所有方法的总和
- 对象#<XMLHttpRequest>没有方法'完成'
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 丢失对象“;这个“;方法中的上下文
- 如何在ajax中调用javascript对象的方法
- 为什么页面方法对象未定义
- 如何使用在另一个文件中定义的JavaScript方法/对象
- 如何告诉JsHint忽略“未解析的函数或方法”?对象上的警告
- 使用jinja/javascript动态创建方法/对象