標籤:
代碼一:
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <script> function Car (desc) { this.desc = desc; this.color = "red"; }// Car.prototype = { // getInfo: function() { // return ‘A ‘ + this.color + ‘ ‘ + this.desc + ‘.‘; // } // }; //instantiate object using the constructor function var car=new Car("bmw");// var car = Object.create(Car.prototype);// console.log(car.getInfo()); console.log(car instanceof Car); console.log(car.color); console.log(car.desc); </script></head><body></body></html>
以上code輸出結果為:
trueredbmw
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <script> function Car (desc) { this.desc = desc; this.color = "red"; }// Car.prototype = { // getInfo: function() { // return ‘A ‘ + this.color + ‘ ‘ + this.desc + ‘.‘; // } // }; //instantiate object using the constructor function// var car=new Car("bmw"); var car = Object.create(Car.prototype);// console.log(car.getInfo()); console.log(car instanceof Car); console.log(car.color); console.log(car.desc); </script></head><body></body></html>
以上code輸出結果:
true
undefined
undefined
問題來了:
通過new+建構函式構建執行個體,執行個體能訪問建構函式的屬性
通過Object.create(prototype)構建執行個體時,執行個體對象不能訪問建構函式的屬性
以上結果出現的理論依據在哪裡。找出來
JavaScript原型及原型鏈