普通函数和构造函数的区别<br>
在命名规则上
普通函数遵照小驼峰命名法<br>
构造函数一般是首字母大写
在函数调用得时 function fn( ){ }<br>
普通函数<br>
1.fn
2.在调用函数的内部不会创建新的对象<br>
3.函数内部的this指向调用函数的对象(如果没有对象调用,默认是window)
4.返回值由return语句决定
构造函数
1.new fn <br>
2.构造函数内部会创建一个新的对象,即f的实例
3.函数内部的this指向新创建的实例<br>
4.默认的返回值是f的实例<br>
构造函数常见的面试题
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><script>
<span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);"> 2</span> <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 255);">function</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 0);"> foo() {
</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);"> 3</span> <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 255);">var</span> f2 = <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 255);">new</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 0);"> foo2();
</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);"> 4</span> console.log(f2); <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 0);">//</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 0);">{a: 3}</span>
<span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);"> 5</span> console.log(<span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 255);">this</span>); <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 0);">//</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 0);">window</span>
<span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);"> 6</span> <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 255);">return</span> <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 255);">true</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 0);">;
</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);"> 7</span> <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 0);"> }
</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);"> 8</span> <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 255);">function</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 0);"> foo2() {
</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);"> 9</span> console.log(<span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 255);">this</span>); <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 0);">//</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 0);">foo2类型的对象 不是foo2函数</span>
<span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);">10</span> <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 0);">//</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 0);"> this.age = 30;</span>
<span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);">11</span> <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 255);">return</span> {a: 3<span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 0);">};
</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);">12</span> <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 0);"> }
</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);">13</span> <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 255);">var</span> f1 =<span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 0, 0);"> foo();
</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);">14</span> console.log(f1); <span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 0);">//</span><span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 0);"> true</span>
<span style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 12px !important; line-height: 1.5 !important; color: rgb(0, 128, 128);">15</span> </script></pre>