function Foo(){ getName = function(){ console.log(1); } return this; } Foo.getName = function(){ console.log(2) } Foo.prototype.getName = function(){ console.log(3) } var getName = function(){ console.log(4) } function getName(){ console.log(5); } console.log(Foo()); // window Foo.getName();// 2 getName();// 1 Foo().getName();// 1 getName();// 1 new Foo.getName();// 2 new Foo().getName();// 3 new new Foo().getName();// 3
心得:调用构造函数时,运行会覆盖外层函数,
2.console.log("8"|"1");输出什么?
答:9 这是位运算符~,&,| 分别对应非,与,或,不过这两个数字是要进行2进制的计算,
&是比较2进制的数,是否相匹配,它把每个数字中的数位对齐,然后用下面的规则对同一位置上的两个数位,如果相同就留下2进制的位数,如果不匹配就舍去为0;
|同样也是2进制的数进行比较,相当于2进制的位数上有1上1没1就填0;