Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   null instanceof Object (https://javascript.ru/forum/misc/7136-null-instanceof-object.html)

JSprog 17.01.2010 18:44

null instanceof Object
 
Вроде null как объект но почему тогда?
<script>
var n1=null;
var n2=Object(n1);
alert(n1 instanceof Object);//false
alert(n2 instanceof Object);//true
</script>

Octane 17.01.2010 18:54

null не является объектом
http://javascript.ru/blog/Dmitry-A.-...vnyh-znacheniy

JSprog 17.01.2010 18:55

Во что превращается null после метода Object()
Ведь для него нету подобия объекта как для string, number и boolean

Octane 17.01.2010 19:10

Мне кажется ни во что, функция Object просто возвращает новый пустой объект, когда ее вызывают с аргументом null:
alert([
    typeof Object().valueOf(),
    typeof Object(null).valueOf(),
    Object().valueOf() === Object(null).valueOf(),
    null === null
]);

JSprog 17.01.2010 19:21

Ясно, спасибо вам=)

JSprog 18.01.2010 07:47

Что-то я помозговал не совсем ясен смысл строки.
Object().valueOf() === Object(null).valueOf(),

Octane 18.01.2010 08:20

тут привидение к примитивному типу срабатывает:
var s1 = "abc";
var s2 = new String("abc");
alert([
    s1 === s2,
    s1 === s2.valueOf()
]);

а в случае с null нет:
var n1 = null;
var n2 = new Object(null);
alert([
    n1 === n2,
    n1 === n2.valueOf()
]);

отсюда делаем вывод, что Object просто новый объект создает, не запоминая null

JSprog 18.01.2010 08:57

все ясненько)
c undefined похоже все также


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