普通函式和建構函式的差別
在命名規則上,建構函式一般是首字母大寫,普通函式遵照小駝峰式命名法。
在函數呼叫的時候:
function fn() { }
建構子:1. new fn( ) 內部會創造一個新的對象,即f的實例
3.函數內部的this指向新創建的f的實例
4. 預設的傳回值是f的實例
2. 在呼叫函數的內部不會建立新的物件
3.函數內部的this指向調用函數的物件(如果沒有物件調用,預設是window)
當手動新增回傳值後(return語句):
1. 傳回值是基本資料類型-- 複雜資料型態(物件)-->真正的回傳值是這個物件
看一個常見的面試題
<script> function foo() { var f2 = new foo2(); console.log(f2); //{a: 3} console.log(this); //window return true; } function foo2() { console.log(this); //foo2类型的对象 不是foo2函数 // this.age = 30; return {a: 3}; } var f1 = foo(); console.log(f1); // true </script>