何时使用构造函数,构造函数使用new关键字
生活随笔
收集整理的這篇文章主要介紹了
何时使用构造函数,构造函数使用new关键字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于何時使用js的構造函數一般創建多個有相同屬性/方法的對象,就會去寫構造函數,就會去new
如果只是一個單獨的對象,直接使用字面量就行了var person = {name:'postbird',address:'earth',sayHello:function(){console.log('Hello,I am ' + this.name);}
}; js構造函數創建對象加new問題/*new操作符做了些什么呢:1、創建一個新對象2、將構造函數的作用域賦給新對象(因此 this 就指向了這個新對象)3、執行構造函數中的代碼(為這個新對象添加屬性)4、返回新對象。
*/function Obj(name){this.name = name; console.log(this); // 嚴格模式下是undefined 非嚴格模式下是window對象
}
var a= Obj("name11"); // undefined
a.name; //Uncaught TypeError: Cannot read property 'name' of undefined
var b = new Obj('name22'); //Obj {name: "name22"}
b.name; //name22//使用new操作符創建對象,并且構造函數沒有返回值或者返回為基本數據類型,那么返回該對象
function Obj(name){this.name = name;
}
var b = new Obj(); //Obj { name: undefined }function Obj(name){this.name = name;return 'chic';
}
var b = new Obj(); //Obj {name: undefined}//使用new操作符創建對象,并且構造函數返回一個引用類型
function Obj02(name){this.name = name;return {};
}
var a02 = Obj02("name11"); //Object {}
a02.name; //undefined
var b02 = new Obj02('name22'); //Object {}
b02.name;//undefined/*** 總結:* 對于不加new來執行構造函數來說,返回值就是構造函數的執行結果* 對于加new關鍵字來執行構造函數而言,如果return的是基本數據類型,那么忽視掉該return值,* 對于加new關鍵字來執行構造函數而言,如果返回的是一個引用類型,那么返回該引用類型*/
?
如果你的對象有很多實例,或者涉及繼承或者構造函數傳參function Person(name,address){this.name = name;this.address = address; } Person.prototype.sayHello = function(){console.log('Hi I am ' + this.name); }var p1 = new Person('postbird','earth'); var p2 = new Person('ptbird','month'); 總的來說,構造函數應用比較廣泛,如果只是簡單地對象,使用字面量就夠了。構造函數在對象實例化、繼承等應用還是比較多的?
轉載于:https://www.cnblogs.com/slightFly/p/11441122.html
總結
以上是生活随笔為你收集整理的何时使用构造函数,构造函数使用new关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java虚拟机详解(八)------虚拟
- 下一篇: 洛谷P2038 无线网络发射器选址