var class1=function(){}; // class1 是对匿名函数的引用,真正的 constructor 还是匿名函数。
var c=new class1();
alert(c.constructor); //function(){};
function class1(){}; // class1 是真正的函数名,constructor 当然就是 class1 !
var c=new class1();
alert(c.constructor); //function class1(){}如果学过 C,应该很容易理解,类似指针!
var c=new class1();
alert(c.constructor); //function(){};
function class1(){}; // class1 是真正的函数名,constructor 当然就是 class1 !
var c=new class1();
alert(c.constructor); //function class1(){}如果学过 C,应该很容易理解,类似指针!
为什么又变成function(){}; 了呢var class1=function(){};
明明有名字class1为什么还是匿名函数呢
指向函数的实体问题是class1都是指向的function(){};
如果两个class1都只是引用值为什么第一个
第二个class1可以自己生成函数
第一个就不可以呢
(否则后面相同的步骤得到的结果应该是相同的)那就奇怪了
class1里面到底是什么东西呢
而且
var class3=new Function();
var c3=new class3();
alert(c3.constructor);
这个也是不同的
var c=new class1();
alert(c.constructor); //function(){};
function class1(){}; // 这是标准函数声明的一种,class1 为函数名,当然通过 class1 可以调用该函数,同时 class1 又是函数体本身的一部分!
var c=new class1();
alert(c.constructor); //function class1(){}var class3=new Function(); // 这个是真正的匿名函数!class3 指向它。与第一种情况类似,但又有微小差别。详细细节请参考经典书籍的解释!
var c3=new class3();
alert(c3.constructor);
但如果按我的理解那三个class都是一样的但这里看到是不一样的
所以我的理解至少是不完全正确class1 是函数体本身的一部分?
这个怎么理解,怎么样的指向才是函数的一部分呢
function class1(){}; // 这是标准函数声明的一种,class1 为函数名,当然通过 class1 可以调用该函数,同时 class1 又是函数体本身的一部分!
var c=new class1();
alert(c.constructor); //function class1(){}很简单,出现在 function 后面的标识符就是函数名,上面的 function class1 中 class 就是函数的函数名,属于函数体的一部分。其他两种一个属于空函数名,另一个是标准的匿名函数,空函数名的情况以前俺也没有特别注意过,不过理解起来并不难!
所以会出现ls的ls的情况