JavaScript 調(diào)用構(gòu)造函數(shù)
■知識(shí)點(diǎn)
使用new命令可以調(diào)用構(gòu)造函數(shù),創(chuàng)建實(shí)例,并返回這個(gè)對(duì)象。
■實(shí)例設(shè)計(jì)
針對(duì)上節(jié)的示例,下面使用new命令調(diào)用構(gòu)造函數(shù),生成兩個(gè)實(shí)例,然后分別讀取屬性,調(diào)用方法sum()。
function Point (x,y) { //構(gòu)造函數(shù)
this.x = x; //私有屬性
this.y = y; //私有屬性
this.sum = function (){ //私有方法
return this.x + this.y;
}
)
var p1 = new Point(100,200); //實(shí)例化對(duì)象1
var p2 = new Point(300,400); //實(shí)例化對(duì)象2
console.log(p1.x); //100
console.log(p2.x); //300
console.log(pi.sum()); //300
console.log(p2.sum()); //700
■小結(jié)
如果不使用new命令,直接使用小括號(hào)調(diào)用構(gòu)造函數(shù),這時(shí)構(gòu)造函數(shù)就是普通函數(shù),不會(huì)生成實(shí)例對(duì)象,this就代表調(diào)用函數(shù)的對(duì)象,在客戶端指代全局對(duì)象window。
為了避免誤用,最有效的方法是在函數(shù)中啟用嚴(yán)格模式。這樣調(diào)用構(gòu)造函數(shù)時(shí),必須使用new命令,否則將拋出異常。
function Point(x,y){ //構(gòu)造函數(shù)
'use strict'; //啟用嚴(yán)格模式
this.x = x; //私有屬性
this.y = y; //私有屬性
點(diǎn)擊加載更多評(píng)論>>