私有函数类似于使用Literals的Java

时间:2014-08-25 22:03:15

标签: javascript html5 cocos2d-x cocos2d-js

我有一个像下面这样的对象设置:

var StartScreenLayer = cc.Layer.extend({
ctor: function () {
    this._super();
    // this function can call createBackground!
    this.createBackground();
},
callCreateBackgroundToo: function () {
   // I can call createBackground too!
   this.createBackground();
},
createBackground: function () {
});

如何安排它以便createBackground是私有的,但其他对象不能调用screenLayer.createBackground()之类的内容并在对象上抛出createBackground is undefined类型错误?

1 个答案:

答案 0 :(得分:0)

显然,惯例是在它前面添加下划线。但它只是一个惯例,所以你仍然可以打电话给"私人"功能

我使用的cocos2d库就是这样,所以我想我也会这样做。

编辑:

根据Volune的建议,我采用了以下方法:

var StartScreenLayer = cc.Layer.extend(function() {
  function callCreateBackgroundToo() {
     // I can call createBackground too!
     createBackground(this);
  }
  function createBackground() {
  }
  return {
    ctor: function () {
        this._super();
        // this function can call createBackground!
        createBackground.call(this);
    }
  }
}());