|
|
|
|
|
для: Tonik992
(05.03.2011 в 17:20)
| | >http://www.cyberforum.ru/cpp-beginners/thread86260.html
>вот почитай.. а вообще тег для поиска "c++ указатель this"
this изначально пошел из C++. Но this в С++ и JavaScript отличаются, эту мысль и пытается донести Абырвалг. Объектные модели отличаются, поэтому есть различия. Если в C++ без воли программиста ни один объект не рождается, но в JavaScript они только так и рождаются. | |
|
|
|
|
|
|
|
для: Tonik992
(05.03.2011 в 17:20)
| | не когда бы не подумал что так сложно обьяснить что означает this. =)
автор не много отдохни а потом прочитай ниже
например ты создал function (wer) и когда ты внутри всякое описываешь то когда тебе надо будет сослатся на саму функцию тебе нужно использовать this
и тоже самое в jquery когда выбираешь обьект и тебе надо сним что то делать то используется this
ну переведи с английского слово this и включи логику >_< а как его правильно называть это не имеет значения
ъ
а вот прочитал пост Абырвалг все тоже самое | |
|
|
|
|
|
|
|
для: Golovastik
(02.03.2011 в 21:14)
| | http://www.cyberforum.ru/cpp-beginners/thread86260.html
вот почитай.. а вообще тег для поиска "c++ указатель this" | |
|
|
|
|
|
|
|
для: Golovastik
(05.03.2011 в 01:51)
| | Нет, этот код - всего лишь создание объекта test.
Он, этот объект test, пока лишь мальчик.
Но, как и всякая особь мужского рода, этот мальчик имеет первичные половые признаки, сиречь видимую потенциальную способность в будущем стать ПАПОЙ-конструктором.
Если Вы позже с помощью test создадите новый объект, то этот самый test станет конструктором - мальчик вырос и стал ПАПОЙ, родив нового мальчика. | |
|
|
|
|
|
|
|
для: Абырвалг
(05.03.2011 в 01:11)
| |
function test(){
this.a = "Чай";
document.write(this.a);
}
|
Этот код - это описание конструктора test и одновременное его создание? | |
|
|
|
|
|
|
|
для: Golovastik
(05.03.2011 в 00:07)
| | Кто-то из гитлеровских приспешников, по-моему - Геббельс, говорил: "Когда я слышу слово интеллигент, моя рука тянется к спусковому крючку автомата".
Я сейчас вот ТОЧНО ТАКЖЕ хочу Вас... ну хотя бы чем-нить сильно ударить.
После того, как я Вам здесь десять раз написал, САМЫМИ БОЛЬШИМИ буквами написал - "НЕТУ методов в JS", Вы меня спрашиваете: "Значит объявление метода со свойствами - это описание конструктора?"
Так и хочется спросить словами незабвенного Паниковского: "МЕТОД - он Вам кто? Он Ваш папа - этот МЕТОД?"
------------
Любое объявление/создание любого нового объекта в JS происходит с использованием конструктора.
Либо встроенного, либо Вами созданного.
Пример:
var s1 = new String ('строка'); //Создаём объект типа String
alert (s1.constructor); //Получаем название конструктора, при помощи которого этот объект создан - function String
s1.alfa = 125; //У этой строки (именно потому, что она создана как ОБЪЕКТ) могут быть свойства.
//Причём, как видите, свойства могут быть и не строковыми, а численными (да какими угодно, хоть другой объект)
alert (s1.alfa); //проверяете свойство alfa у объекта s1
s1.beta = new Array (); //Пример "объекта объекта": свойство beta объекта s1 - это массив (тоже ОБЪЕКТ);
alert (s1.beta.constructor); //Раз это ОБЪЕКТ объекта, то у него при создании был конструктор - function Array
var s2 = 'тоже строка'; //Создали просто строку, как переменную, не как объект
s2.gamma = 123; //Попытались назначить переменной s2 свойство gamma
alert (s2.gamma); //Читаете свойство gamma - а там undefined. Ибо у переменных не бывает свойств.
function test () {} //Создаете объект test
alert (test.constructor); //Вот вам конструктор, который создал объект test - function Function
var sssr = new test; //Клонируете объект test, создавая новый объект sssr
alert (sssr.constructor); //Вот вам конструктор, который создал объект sssr - это Вами лично созданный ранее конструктор function test
|
| |
|
|
|
|
|
|
|
для: Абырвалг
(04.03.2011 в 23:49)
| | 1)То есть написав функцию, а внутри неё свойства - это равносильно что я создал объект с именем ТЕСТ а в нём свойства.
2)Я понял что ссср это новый объект, вы где-то выше писали что свойство объекта, тоже становится объектом это правда?
3)Значит объявление метода со свойствами - это описание конструктора?
Вот это я описал конструктор?
function test(){
this.a = "Чай";
document.write(this.a);
}
А если бы я просто объявил функцию со свойствами, но не создавал бы объекта, тогда вот это:
function test(){
this.a = "Чай";
document.write(this.a);
}
|
означало бы создание объекта со свойствами? | |
|
|
|
|
|
|
|
для: Golovastik
(04.03.2011 в 23:28)
| | Уточняю.
function test () //Это создание объекта test
{
this.abc = 'Чай'; //Это создание свойства abc объекта test
}
var sssr = new test; //Это создание НОВОГО объекта sssr, наследующего все свойства объекта test
alert (sssr.abc); //И здесь Вы убеждаетесь, что свойства объекта test унаследованы
sssr.def = 'Кофе'; //Это создание свойства def у объекта sssr
alert (sssr.def); //Проверяете новое свойство def у объекта sssr
alert (test.def); //А здесь, увидев пустоту, Вы убеждаетесь, что sssr - это таки НОВЫЙ объект
|
| |
|
|
|
|
|
|
|
для: Абырвалг
(04.03.2011 в 23:04)
| | Здесь уточнить момент хотел.
<script type="text/javascript">
function test(){ //Это создание метода с именем ТЕСТ, тоже самое что я создал объект ТЕСТ?
this.a = "Чай";
document.write(this.a);
}
/*Если свойство объекта - это тоже объект, получается "объект объекта".*/
//То есть sssr.a свойство а - это объект?
var sssr = new test;
sssr.a;
</script>
|
| |
|
|
|
|
|
|
|
для: Golovastik
(04.03.2011 в 22:58)
| | Опять двадцать пять.
Опять - "класс это или не класс?", "создан метод или не метод?"
НЕТУ классов. НЕТУ методов.
СОВСЕМ НЕТУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУ!
Ни одного класса. Ни одного метода.
И встроенных нет.
И создать их НЕЛЬЗЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ!
------
Функция - это один из имеющихся в JS объектов.
Всякий объект может иметь свойства. Вы их можете создать.
Но только - СВОЙСТВА.
Не методы и не классы, а именно и только - СВОЙСТВА.
Если свойство объекта - это тоже объект, получается "объект объекта".
Что непонятного-то?:-))) | |
|
|
|
|