0

指定されたオブジェクトに対してのみ機能する関数が必要です。それが可能かどうかはわかりませんが、次のようなことを試しました。

var a = {
    b: function(a) {
        return display(a)
    }
}
a.prototype.display = function(a) {
    return a;
}
alert(a.b('Hi'))​//This is suppose to work
alert(display(a))//This isn't suppose to work

ただし、これは機能しません。理由はわかりません。プロトタイプは初めてです。たとえば、String.prototypeで使用しましたが、他のすべてのことを学ぶ必要があります。助けてくれてありがとう。

4

1 に答える 1

0

オブジェクトにプライベートメソッドが必要です。javascriptでこれを実現する唯一の方法は、関数をクロージャに保持し、現在のオブジェクトのコンテキストで実行することです。

var a = (function () {
      var display = function (a) {
          return a;
      };

      return {
         b : function(a) {
             // display exist in closure scope of b;
             //executing display in the context of current object
             return display.apply(this, arguments);
         }
      };
})();

ここdisplayは外からはアクセスできません。

alert(a.b("hi")); //will return hi

a.display("hi");アクセスできません。

于 2012-07-29T04:43:34.190 に答える