Javascript中的方法,在声明的时候都做了些什么? 如 function func(a){ this.a = a; } f会自动分配一个prototype属性,这个prototype属性是个对象,这个对象只有一个constructor属性,而这个constructor属性指向func 也就是说,当声明了一个方法,那么这个方法就有以下关系 alert(func === func.prototype.constructor); 那么用new创建一个对象又做了些什么呢? var f = new func("a"); 1.创建一个没有任何属性的空对象。 ...
先看代码 alert(typeof null); //object alert(typeof Object.prototype); //object alert(null instanceof Object); //false alert(Object.prototype instanceof Object); //false 从结果可以看出,null和Object.prototype都不是对象。 alert(typeof Function.prototype); alert(Function.prototype instanceof Function); ...
prototype是javascript中的重中之重。 先用例子来说话 function f1(a){ this.a = a; } function f2(b){ this.b = b; } function f3(c){ this.c = c; } function f4(d){ this.d = d; } f3.prototype = new f4("d"); f2.prototype = new f3("c"); f1.prototype = new f2("b"); var f = new f1("a"); ...
先看个实例: func1(); var a = "hello"; function func1(){ var b = "world"; b = a; alert(b); if(false){ var a = "hahaha"; } } 这里有两个问题 1.为什么func1在声明前也可以运行 2.为什么alert(b)会显示未定义“undefined” 要解释这两个问题,只要知道两点就可以。 1.javascript在运行前会有预编译期,会把声明提前(不管这个生命是否真的会运行) 2.局部变量的优先权大于全局变量 所以这个代码的顺序 ...
weiqingfei
搜索本博客
存档
最新评论