急,javascript不是对象的问题?var a=123;
typeof(a)类型为numbera的类型为number,为什么可以这么写a.constructor呢?a又不是对象,为什么可以a.constructor呢?他的类型是number啊,又不是object啊,为什么可以a.constructor啊?为什么啊?--------------------------------------------------------------------------
function kk(){}
typeof(kk)类型是functionkk的类型为function,为什么可以这么写kk.constructor?kk又不是对象,为什么可以kk.constructor呢?他的类型为function,又不是object类型,为什么可以kk.constructor啊?为什么啊?
javascript为什么这么变态啊?为什么啊?难以置信的变态啊!
typeof(a)类型为numbera的类型为number,为什么可以这么写a.constructor呢?a又不是对象,为什么可以a.constructor呢?他的类型是number啊,又不是object啊,为什么可以a.constructor啊?为什么啊?--------------------------------------------------------------------------
function kk(){}
typeof(kk)类型是functionkk的类型为function,为什么可以这么写kk.constructor?kk又不是对象,为什么可以kk.constructor呢?他的类型为function,又不是object类型,为什么可以kk.constructor啊?为什么啊?
javascript为什么这么变态啊?为什么啊?难以置信的变态啊!
等价于:
var a = new Number(123);//显示创建Number对象因为:JScript 根据数字值的要求创建 Number 对象。 很少有必要显式创建 Number 对象(来自javascript API),类似比如
var a = "123";
等价于
var a = new String("123");//显创建String对象但是Date类型的对象就只能new Date()来创建.constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。所有 JScript 固有对象都有只读的 prototype 属性。固有对象是作为标准 JScript 语言一部分的一种对象。所有的脚本都可以使用这种对象。JScript 中的固有对象包括 Array,Boolean,Date, Function,Global,Math,Number,Object,RegExp,Regular Expression,和 String。(来自javascript API)所以,有不明白的地方请自己查API
var a = 1;
和
var a = new Number(1);
是一个意思。
等价于:
var a = new Number(123);//显示创建Number对象不等价吧?
一个放的内存的堆栈中,一个放在堆里了。