2012-05-04 4 views
0

Я не уверен, как устанавливать методы private или public при использовании requirejs, поскольку он использует сокращенное обозначение объекта. В следующем коде я бы предпочел, чтобы свойство «id» и метод «prepareId» были закрытыми.Частные и общедоступные методы в объектах RequireJS

define(['jquery'], function ($) { 
    var Asset = Class.extend({ 
     init: function() { 
      this.id = "12345"; 
     } 
     ,getAsset: function() { 
      return this.prepareId(this.id); 
     } 
     ,prepareId: function(id) { 
      return "#" + id; 
     } 
    }); 
    return Asset; 
}); 

ответ

2

Я думаю, вы немного смущены. require.js не налагает правил на то, что вы возвращаете. Если вы хотите вернуть конструктор, который создает «частные» атрибуты и функции, вы можете это сделать.

Итак, следующее (если я правильно понимаю, что вы подразумеваете под личным), должно работать нормально.

define(['jquery'], function ($) { 
    var Asset = function() { 
    var id; 
    function prepareId(id) { 
     ... 
    }; 
    ... 
    }; 
    return Asset; 

}); 
+1

Вы также можете объявить любые частные VARS/методы вне конструктора, используя шаблон, описанную на RequireJS документы - http://requirejs.org/docs/api.html#deffunc –

+0

К сожалению мой ответ задерживается , Я пытаюсь выяснить ценность повторного использования примера Джона Ресига для [простого наследования javascript] (http://ejohn.org/blog/simple-javascript-inheritance/) для моего приложения. – scader

Смежные вопросы