【问题标题】:call javascript object function调用javascript对象函数
【发布时间】:2014-09-07 22:56:09
【问题描述】:
我有两个相同类型的对象。
function myObject(){
this.a = 1;
this.b = 1;
function changeA(){//some code};
function changeB(){//some code};
}
var obj1 = new myObject();
var obj2 = new myObject();
如何从外部代码、另一个函数或另一个对象(例如 obj1)调用 obj2.changeB() ?
【问题讨论】:
标签:
javascript
javascript-objects
【解决方案1】:
obj2.changeB() 不存在。
你需要为你的对象分配一个属性,而不是创建一个局部变量:
this.changeB = function() { ... };
【解决方案2】:
只需在您的对象中创建一个属性,例如:
function myObject(){
this.a = 1;
this.b = 1;
this.functionA = function changeA(){//some code
alert('im 1');
};
this.functionb = function changeB(){//some code
alert('im 2');};
}
并调用函数obj2.functionb();
LIVE DEMO
【解决方案3】:
你必须这样做:
var myObject = function(){
var protectedValue1 = ‘variable’;
var protectedValue2 = ‘variable’;
var changeA = function(){
alert(protectedValue);
}
var changeB = function(){
alert(protectedValue);
}
}
var object1 = new myObject();
var object2 = new myObject();
//
object2.changeB();