2014-09-07 3 views
0

У меня есть два объекта того же типа.call javascript object function

function myObject(){ 
this.a = 1; 
this.b = 1; 
function changeA(){//some code}; 
function changeB(){//some code}; 
} 

var obj1 = new myObject(); 
var obj2 = new myObject(); 

Как можно сделать вызов obj2.changeB() от внешнего кода, другой функции или другого объекта (например, obj1)?

+0

Вы не можете, функции являются локальными и не частью 'myObject' – adeneo

+0

Локальная функция не метод. – Bergi

ответ

0

Просто создайте свойства в вас объект как:

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

obj2.changeB() не существует.

Вам необходимо присвоить свойство вашего объекта, а не создать локальную переменную:

this.changeB = function() { ... }; 
0

У вас есть чтобы сделать что-то вроде этого:

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();