【问题标题】: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() ?

【问题讨论】:

  • 不能,函数是本地的,不是myObject的一部分
  • 本地函数不是方法。

标签: 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();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-16
        • 1970-01-01
        • 2013-05-26
        • 2016-05-19
        • 1970-01-01
        相关资源
        最近更新 更多