Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> намбер или не намбер? 
:(
    Опции темы
cruelangel
Дата 3.10.2007, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 12.9.2007

Репутация: 4
Всего: 8



Код
Number.prototype.test= function( ){
    return true;
}
var n= 1;
alert( n.test() ? 'yes' : 'no' );
alert( ( n instanceof Number ) ? 'yes' : 'no' );


возвращает:

yes
no

у кого-нибудь есть идеи, почему?
PM MAIL   Вверх
AKS
Дата 3.10.2007, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(cruelangel @  3.10.2007,  20:53 Найти цитируемый пост)
у кого-нибудь есть идеи, почему? 

А тут идей не может быть никаких. Все в соответствии со спецификацией.
PM MAIL   Вверх
cruelangel
Дата 3.10.2007, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 12.9.2007

Репутация: 4
Всего: 8



мрак...
PM MAIL   Вверх
AKS
Дата 3.10.2007, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(cruelangel @  3.10.2007,  21:16 Найти цитируемый пост)
мрак... 

Для еще большей "темени" (специально для Вас):
Код

Number.prototype.test = function () {
    return this;
};

var n = 1;

var nn = new Number(1);

alert(n === n.test()); // -> false

alert(nn === nn.test()); // -> true

PM MAIL   Вверх
cruelangel
Дата 3.10.2007, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 12.9.2007

Репутация: 4
Всего: 8



спасибо, уже нашёл: var n= Object(1);

PM MAIL   Вверх
fidres
Дата 9.10.2007, 05:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 15.11.2006

Репутация: нет
Всего: 1



кхы-кхы....
а не проще ли проверку на isNaN делать?
 smile 
--------------------
Исправьте ошибку в слове <ХЕРОШО> и я скажу Вам оптимист Вы или пессимист.
PM ICQ   Вверх
AKS
Дата 9.10.2007, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(fidres @  9.10.2007,  05:41 Найти цитируемый пост)
кхы-кхы....
а не проще ли проверку на isNaN делать?
 smile  

Да уж, действительно "кхы-кхы". )))))))))))))
Вы о чем? Проверку чего и для чего? 

PM MAIL   Вверх
fidres
Дата 12.10.2007, 04:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 15.11.2006

Репутация: нет
Всего: 1



AKS, ну на сколько я понял, чувак пытается установить является ли переменная числом... для этого проверяет её тип.
смысл в том, что есть встроенные функции определения. не помню точно isNaN или isNum... но не в этом смысл. при желании можно найти описание любой встроеной функции, а не изобретать какие-то свои методы.
 smile 
--------------------
Исправьте ошибку в слове <ХЕРОШО> и я скажу Вам оптимист Вы или пессимист.
PM ICQ   Вверх
AKS
Дата 12.10.2007, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(fidres @  12.10.2007,  04:03 Найти цитируемый пост)
чувак пытается установить является ли переменная числом...

Во-первых, не "чувак", а cruelangel. Именно так мы обращаемся друг к другу.
Во-вторых, cruelangel "пытается установить", а точнее пытался установить, почему  в выражении:
Код

var n= 1;
n instanceof Number // вот это и есть "камень преткновения", о который споткнулся автор темы

оператор instanceof возвращает false.

Цитата(fidres @  12.10.2007,  04:03 Найти цитируемый пост)
смысл в том, что есть ...не помню точно... но не в этом смысл.

Так в чем же смысл?

Цитата(fidres @  12.10.2007,  04:03 Найти цитируемый пост)
при желании можно найти описание любой встроеной функции, а не изобретать какие-то свои методы.

В этой теме кто-нибудь что-нибудь пытался изобрести?

PM MAIL   Вверх
cruelangel
Дата 12.10.2007, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 12.9.2007

Репутация: 4
Всего: 8



fidres, NaN - это тоже число, просто оно особенное, также как и Infinity smile


AKS, в третьих я не против обращений типа "чувак", "перец", "чел" и многих других, пока они не имеют целью унижение собеседника smile


Вообще мне нужно было определить является ли переменная числом и соответственно наследует ли она методы от Number.prototype. проверка ( Object( n ) instanceof Number ) вполне себе нормально работает.

вообще, код, приведённый в первом посте, ярко иллюстрирует глупость разработчиков яваскрипта. видите ли числа наследуют у Number методы и поля, но не хотят в этом добровольно сознаваться - приходится крутить их в бараний рог.

Это сообщение отредактировал(а) cruelangel - 12.10.2007, 13:23
PM MAIL   Вверх
AKS
Дата 12.10.2007, 14:38 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(cruelangel @  12.10.2007,  13:08 Найти цитируемый пост)
Вообще мне нужно было определить является ли переменная числом и соответственно наследует ли она методы от Number.prototype. 

В таком случае написать Number.prototype.test было ошибкой.

Цитата(cruelangel @  12.10.2007,  13:08 Найти цитируемый пост)
проверка ( Object( n ) instanceof Number ) вполне себе нормально работает.

instanceof всегда нормально работает.

Цитата(cruelangel @  12.10.2007,  13:08 Найти цитируемый пост)
код, приведённый в первом посте, ярко иллюстрирует глупость разработчиков яваскрипта

Не то, чтобы "ярко" - он вообще не имеет отношения к глупости или мудрости разработчиков яваскрипт. Могу согласиться, что это яркая демонстрация знаний писавшего.

Цитата(cruelangel @  12.10.2007,  13:08 Найти цитируемый пост)
числа наследуют у Number методы и поля, но не хотят в этом добровольно сознаваться - приходится крутить их в бараний рог.

Да, числа в яваскрипт - хитрые малые. Не всем и не каждому они "добровольно признаются", кто они на самом деле. И правильно делают - при таком-то отношении:
Цитата(fidres @  12.10.2007,  04:03 Найти цитируемый пост)
есть встроенные функции определения. не помню точно isNaN или isNum

А желание "крутить в бараний рог", по моим наблюдениям, напрямую зависит еще и от темперамента программиста. Точно, как в народной мудрости: "Сила есть - ума не надо".
К тому же, модно сейчас даже сам яваскрипт "крутить в бараний рог", чего уж там про числа говорить.


PM MAIL   Вверх
cruelangel
Дата 12.10.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 12.9.2007

Репутация: 4
Всего: 8



> В таком случае написать Number.prototype.test было ошибкой.

почему?


PM MAIL   Вверх
AKS
Дата 12.10.2007, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(cruelangel @  12.10.2007,  16:22 Найти цитируемый пост)
> В таком случае написать Number.prototype.test было ошибкой.

почему?

А как этот метод может "определить является ли переменная числом и соответственно наследует ли она методы от Number.prototype"???

PM MAIL   Вверх
cruelangel
Дата 12.10.2007, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 12.9.2007

Репутация: 4
Всего: 8



по факту своего выполнения
PM MAIL   Вверх
AKS
Дата 12.10.2007, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



cruelangel, мы друг друга не поняли - это точно.
Для меня фраза "определить является ли переменная числом и соответственно наследует ли она методы от Number.prototype" означает следующее (на примере):
Код

var n = 1;

if (n.test()) { // Ваш "факт выполнения"
    // ура! n - это номер, ведь метод test вернул true.
};

var s = '1';

if (s.test()) {  // Ваш "факт выполнения"
    // а здесь - ничего и никогда, ведь на предыдущей строке будет ошибка.
};

Возможно Вы имели ввиду проверку, вроде такой:
Код

if (s.test && s.test()) {
 
};

, но я в ней не могу усмотреть какой-либо смысл. :(
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1047 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.