Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Последовательность функций как в jquery (https://javascript.ru/forum/events/30898-posledovatelnost-funkcijj-kak-v-jquery.html)

vadim5june 20.08.2012 20:44

Цитата:

Сообщение от platedz
А где содержится InnerHTML

innerHTML это метод большинства DOM объектов
если разбираетесь с jquery- то там каждый елемент(DOM объект) представлен как jquery -объект
можно преобразвывать из одного в другой

platedz 20.08.2012 22:56

Я к сожалению крайне слаб в терминологии.
а document.getElementById - разве не дом объект?

cyber 20.08.2012 23:11

Цитата:

Сообщение от platedz (Сообщение 199202)
Я к сожалению крайне слаб в терминологии.
а document.getElementById - разве не дом объект?

это дом обьект =)
но в jquery создается свой обьект поэтому вы можете вызывать легко свойства и методы example:
$('#block').css
$('#block') - вернет jquery обьект

platedz 21.08.2012 23:37

Создал объект
obj = (function(window){

return{

	alerts: function(){ alert(dd.innerHTML);},
	dd: function(e) { dd = document.getElementById(e); return this;}

}

})(window)

если его просто вызвать, то все нормально работает
obj.dd("enter").alerts();


А вот так уже не работает.

<div id="onoffcab" onclick="obj.dd("enter").alerts()"></div>


т.е. при клике на div результата нет.

Вопрос, почему? Буду крайне признателен за ответ.

cyber 21.08.2012 23:50

скобки не правильно закрыты
obj = (function(){

return{

	alerts: function(){ alert('1');}
	

}

}());//вот тут не правильно
obj.alerts()

и это не лучшая контрукция для создание обьекта так лучше (имхо)
function createObj () {
      
        this.alert = function (text) {
        
        alert(text);
        };
      
      
      }      

var obj = new createObj ();
  obj.alert('blabla');

platedz 22.08.2012 00:10

Извиняюсь. Виноват. Кавычки неверно поставил.
Почему так не правильно? Работает же?
И как я создам инкапсуляцию таким образом?
Или скорее как я применю методы объекта к объекту window?

cyber 22.08.2012 00:23

Цитата:

Сообщение от platedz (Сообщение 199525)
Извиняюсь. Виноват. Кавычки неверно поставил.
Почему так не правильно? Работает же?
И как я создам инкапсуляцию таким образом?
Или скорее как я применю методы объекта к объекту window?

можно и так и так, но второй как минимум потом удобней читается;)

platedz 08.01.2013 05:37

Пытаюсь унаследовать методы объекта b в объект a.
Подскажите, пожалуйста, что я делаю не так.
Впринципе я пытаюсь на этом примере понять работу prototype, тч. буду признателен за любой пример с prototype, который поможет разобраться.
var a = {

a1: function(){alert("a1");},
a2: function(){alert("a2");}

}

var b = {

b1: function(){alert("b1");},
b2: function(){alert("b2");}

}

a.prototype.b = b;

for(x in a) document.write(a[x] +" - "+x+"<br>");
a.b1();

platedz 08.01.2013 19:45

var a = { a_name:  function(){alert("Альберт")} }
a.a_name();

var b = function(){}
b.b_name = function(){alert("Борис");};
b.b_name();


Как-то я не пойму,
var a - Это объект
а var b - Это функция.

Какая-тогда разница между функцией и объектом, и почему функция обладает свойствами и методами объектов?

platedz 08.01.2013 20:00

А если записать так

a = new Object();
a.a_name = function(){alert("Альберт");};
a.a_name();

b = new Function();
b.b_name = function(){alert("Борис");};
b.b_name();


То разницы и вовсе получается нет.
Но объекты и функции это все-таки ведь разные вещи, или нет?

platedz 08.01.2013 20:06

Да и так тоже работает

b = new Array();
b.b_name = function(){alert("Борис");};
b.b_name();


И вообще с любыми предопределенными объектами.

platedz 08.01.2013 20:07

Так в чем же разница?

platedz 09.01.2013 01:13

Кроме прочего, насколько я понимаю, в прототипах нельзя задать приватные свойства, или можно?

platedz 09.01.2013 03:22

http://learn.javascript.ru/classes#...-в-javascript
Т.е. если я верно понимаю, то в общем-то они все и есть объекты, но имеют какие-то свои отличительные свойства. Было бы интересно, узнать какие. Подскажите, пожалуйста, где это описано.

platedz 09.01.2013 05:07

Подскажите пожалуйста, создаю

var root = function(){}
root.prototype.root = "свойство root";

var admin = function(){}
admin.prototype = new root();
admin.prototype.admin = "свойство admin";

var r = new root(); 
var a = new admin();


Получаю
root = {
root: 'свойство root',
}

admin = {
admin: 'свойство admin',
root: ' свойство root',
}

var root = function(){}
root.prototype.root = "свойство root";

var admin = function(){}
admin = {}.prototype = root;
admin.prototype.admin = "свойство admin";

var r = new root(); 
var a = new admin();


Получаю
root = {
root: 'свойство root',
admin: 'свойство admin',
}

admin = {
root: 'свойство root',
admin: 'свойство admin',
}

При этом насколько я понимаю, конструкция
admin = {}.prototype = root;
делает их как бы равнозначными, те. изменения свойств admin изменит свойства root, и на оборот, т.е. не как при написании, функции-конструктора в первом варианте, где меняются только свойства потомков, но не знаю, где можно посмотреть описание данного синтаксиса.
Подскажите, пожалуйста.


Часовой пояс GMT +3, время: 07:51.