面试中 一些简单总结

function A(){
  return function b(){}  
}

var a1 = new A();
var a2 = new A;

构造函数 内部 显示 return 一个值;将会替换内部生成对象;

new 构造函数;如果没有参数,可以不加();

a1 和 a2 都是 一个函数却 a1 != a2;

 

-------------------------------------------------------------------------------------------------------------------------------------------------

 

function A(){
this.a = 1;
console.log(1); } A.B
= function(){ this.b = 2;
console.log(2); } A.prototype.B
= function(){ this.b = 3;
console.log(3); }
var a1 = new A(); var a2 = new A.B(); //== new (A.B) var a3 = new A.B; var a4 = new A(1).B(); var a5 = new A(1).B;
var a6 = new A().B(); //== (new A).B();

 

new A.B || new A.B() 这里的构造函数是 对象A的B方法;不是 new A,再B

new A().B() || (new A).B() 这样的 先用构造函数A创建对象 再调对象的B方法

 

--------------------------------------------------------------------------------------------------------------------

 

function fn(){
var a = b = 5;
}
fn();
console.log(a); //Uncaught ReferenceError: a is not defined
console.log(b); // 5;

等于

function fn(){
var a;
a = b = 5;
}

fn();b先赋值5并返回5 再赋值给a;由于a是内部申明,b没有就全局变量

 

posted @ 2016-07-08 10:51  ぃ嗨丶胖仔。  阅读(95)  评论(0编辑  收藏  举报