JavaScript 引用構(gòu)造函數(shù)
■知識(shí)點(diǎn)
在普通函數(shù)內(nèi),使用arguments.callee可以引用函數(shù)自身。如果在嚴(yán)格模式下,是不允許使用arguments.callee引用函數(shù)的,這時(shí)可以使用new.target來訪問構(gòu)造函數(shù)。
■實(shí)例設(shè)計(jì)
下面的示例在構(gòu)造函數(shù)內(nèi)部使用new.target指代構(gòu)造函數(shù)本身,以便對(duì)用戶操作進(jìn)行監(jiān)測(cè),如果沒有使用new命令,則強(qiáng)制使用new實(shí)例化。
function Point (x, y) { //構(gòu)造函數(shù)
'use strict'; //啟用嚴(yán)格模式
if(!(this instanceof new.target)) return new new.target(x, y);
//檢測(cè)this是否為實(shí)例對(duì)象
this.x = x; //私有屬性
this.y = y //私有屬性
}
var p1 = new Point (100,200) ; //實(shí)例化對(duì)象 1
console . log (pi .x) ; //100
點(diǎn)擊加載更多評(píng)論>>