Ну приватные методы это те что не выходят за пределы объекта, тоесть по сути написав:
(function(window){
// это приватные переменные
var private1 = 2,
private2 = 10;
var lib = function() {
// тут мы можем обратиться к приватным переменным
return private1 * 2;
}
// итут можем
// и в любом созданном методе в этом [[scope]]
// ................
window.blahblah = lib
})(window);
alert( blahblah.private1 ); // undefined
alert( blahblah.lib() ); // = 4
|
так, например
var myobject = new function(){
var private = 'private';
return {
show : function(){ alert(private); }
};
}
myobject.show()
|
Этот способ я знаю.
Как то сам пытался вывесит alert'ом, то, что написал devote в своем последнем сообщении: alert( blahblah.private1 ); // undefined А как это можно сделать в рамках объекта? Что то типа:
myobject = {
a = 5; // Как сделать ее приватной?
}
Мои мысли уходят примерно в это русло:
myobject = {
a : function(){ a = 5};
}
Как то так.... |
никак
|
var a = { b : "hello!" };
Object.defineProperty( a , "prop", { value : "WTF?" });
// a.prop -> "WTF?"
a.prop = "ololo";
// а теперь это "ololo"
alert( a.prop );
for( var i in a )
alert( "a[ "+i+" ] = "+a[i] );
// prop типа приватная
|
melky,
Дык он про константы чтоль имел ввиду? Видимо я его не понял =) |
а там не константа
он хотел типа такого
a = {
private string MyStr = "Mystring!";
}
MAKEMAGIC ( a.MyStr ); // YAHOO! -> "Mystring!"
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Спасибо, поразбираюсь. |
| Часовой пояс GMT +3, время: 22:40. |