第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

貌似老師的代碼錯了,有哪位大神糾正下

!function(global){
	function?DetectorBase(configs){
if?(!this?instanceof?DetectorBase)?{
	throw?new?Error('Do?not?invoke?without?new.')
???}
???this.configs=configs;
???this.analyze();??
	}
}(this);
DetectorBase.prototype.detect?=?function()?{
	throw?new?Error('Not?implemented')
};
DetectorBase.prototype.analyze=function(){
	console.log('Analyzing...')
	this.data="##data##"
};
function?LinkDetector(links){
	if?(!this?instanceof?LinkDetector)?{
		throw?new?Error('Do?not?invoke?without?new.')
	}
	this.links=links;
	DetectorBase.apply(this,arguments);
}
function?ContainerDetector(containers){
	if?(!this?instanceof?ContainerDetector)?{
		throw?new?Error('Do?not?invoke?without?new.')
	}
	this.containers=containers;
	DetectorBase.apply(this,arguments);
}
function?inherit(subClass,superClass){
subClass.prototype=Object.create(superClass.prototype)
subClass.prototype.constructor=subClass;
}
inherit(LinkDetector,DetectorBase);
inherit(ContainerDetector,DetectorBase);
LinkDetector.prototype.detect=function(){
	console.log('Loading?data:'+this.data);
	console.log('link?detection?started.');
	console.log('Scaning?link:'+this.links);
};
ContainerDetector.prototype.detect=function(){
	console.log('Loading?data:'+this.data);
	console.log('Container?detection?started.');
	console.log('Scaning?containers:'+this.containers);
}
Object.defineProperties(global,{
LinkDetector:{value:LinkDetector},
ContainerDetector:{value:ContainerDetector},
DetectorBase:{value:DetectorBase}
});
var?a=new?ContainerDetector('#abc');
var?b=new?LinkDetector('http://www.baidu.com')
a.detect;
b.detect;

VM25187:11 Uncaught ReferenceError: DetectorBase is not defined

正在回答

3 回答

/**
?*?Created?by?wz?on?16/4/27.
?*/
?
?//這樣應(yīng)該可以了
var?Detec=(function(global){
????return{
????????cons:function?DetectorBase(configs){
????????????if?(!this?instanceof?DetectorBase)?{
????????????????throw?new?Error('Do?not?invoke?without?new.')
????????????}
????????????this.configs=configs;
????????????this.analyze();
????????}
????}
})(this);
Detec.cons.prototype.analyze=function(){
????console.log('Analyzing...');
????this.data="##data##";
};
Detec.cons.prototype.detect=function?()?{
????throw?new?Error('Not?implemented');
};
function?LinkDetector(links){
????if?(!this?instanceof?LinkDetector)?{
????????throw?new?Error('Do?not?invoke?without?new.')
????}
????this.links=links;
????Detec.cons.apply(this,arguments);
}
function?ContainerDetector(containers){
????if?(!this?instanceof?ContainerDetector)?{
????????throw?new?Error('Do?not?invoke?without?new.')
????}
????this.containers=containers;
????Detec.cons.apply(this,arguments);
}
function?inherit(subClass,superClass){
????subClass.prototype=Object.create(superClass.prototype);
????subClass.prototype.cons=subClass;
}
inherit(LinkDetector,Detec.cons);
inherit(ContainerDetector,Detec.cons);
LinkDetector.prototype.detect=function(){
????//console.log(this);
????//alert(this?instanceof?LinkDetector);
????console.log('Loading?data:'+this.data);
????console.log('link?detection?started.');
????console.log('Scaning?link:'+this.links);
};
ContainerDetector.prototype.detect=function(){
????console.log('Loading?data:'+this.data);
????console.log('Container?detection?started.');
????console.log('Scaning?containers:'+this.containers);
};
Object.defineProperties(this,{
????LinkDetector:{value:LinkDetector},
????ContainerDetector:{value:ContainerDetector},
????DetectorBase:{value:Detec.cons}
});
var?a=new?ContainerDetector('#abc');
var?b=new?LinkDetector('http://www.baidu.com');

a.detect();
b.detect();
0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

miragele 提問者

非常感謝!
2016-04-29 回復(fù) 有任何疑惑可以回復(fù)我~

我這個也可以的,不用怎么改老師的代碼

!function(global){

????function?DetectorBase(configs){

if?(!this?instanceof?DetectorBase)?{

????throw?new?Error('Do?not?invoke?without?new.')

???}

???this.configs=configs;

???this.analyze();??

????}

window["DetectorBase"]=DetectorBase;

}(this);

DetectorBase.prototype.detect?=?function()?{

????throw?new?Error('Not?implemented')

};

DetectorBase.prototype.analyze=function(){

????console.log('Analyzing...')

????this.data="##data##"

};

function?LinkDetector(links){

????if?(!this?instanceof?LinkDetector)?{

????????throw?new?Error('Do?not?invoke?without?new.')

????}

????this.links=links;

????DetectorBase.apply(this,arguments);

}

function?ContainerDetector(containers){

????if?(!this?instanceof?ContainerDetector)?{

????????throw?new?Error('Do?not?invoke?without?new.')

????}

????this.containers=containers;

????DetectorBase.apply(this,arguments);

}

function?inherit(subClass,superClass){

subClass.prototype=Object.create(superClass.prototype)

subClass.prototype.constructor=subClass;

}

inherit(LinkDetector,DetectorBase);

inherit(ContainerDetector,DetectorBase);

LinkDetector.prototype.detect=function(){

????console.log('Loading?data:'+this.data);

????console.log('link?detection?started.');

????console.log('Scaning?link:'+this.links);

};

ContainerDetector.prototype.detect=function(){

????console.log('Loading?data:'+this.data);

????console.log('Container?detection?started.');

????console.log('Scaning?containers:'+this.containers);

}

Object.defineProperties(this,{

LinkDetector:{value:LinkDetector},

ContainerDetector:{value:ContainerDetector},

DetectorBase:{value:DetectorBase}

});

var?a=new?ContainerDetector('#abc');

var?b=new?LinkDetector('http://www.baidu.com')

a.detect();

b.detect();


1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

qq_Say_3

為什么要在最后加個(this)才行呢? !function(global){ …… }(this);
2017-03-19 回復(fù) 有任何疑惑可以回復(fù)我~

http://img1.sycdn.imooc.com//57a56c1500015cc108000206.jpg

你代碼里匿名函數(shù)的花括號結(jié)束地點(diǎn)錯啦,應(yīng)該在這之后才對,要把所有的函數(shù)聲明都包含在函數(shù)體內(nèi),這樣才能調(diào)用定義的DetectorBase,否則會說DetectorBase是undefined的

http://img1.sycdn.imooc.com//57a56c910001a28606690122.jpg

下面這樣就可以運(yùn)行了

!function(global){ //用函數(shù)包裹以防止基類的變量和函數(shù)在外部被更改

function DetectorBase(config)

{

if(!this instanceof DetectorBase){

throw new Error("Do't invoke without new.");

}

this.config = config;

this.analyze();

}


DetectorBase.prototype.detect = function(){

throw new Error("not implemented");

}


DetectorBase.prototype.analyze = function(){

console.log("analyzing...");

this.data = "###data###";

}

function LinkDetector(links){

if(!this instanceof LinkDetector){

throw new Error ("Don't invoke without new.");

}

this.links=links;

DetectorBase.call(this,arguments[1]);

}


function ContainerDetector(containers){

if(!this instanceof ContainerDetector){

throw new Error ("Don't invoke without new.");

}

this.containers=containers;

DetectorBase.call(this,arguments[1]);

}


//inherit obj

inherit(LinkDetector,DetectorBase);

inherit(ContainerDetector,DetectorBase);

function inherit(subClass,superClass){

subClass.prototype = Object.create(superClass.prototype);

subClass.prototype.constructor = subClass;

}


//expand child class

LinkDetector.prototype.detect = function(){

console.log("Loading data:"+this.data);

console.log("Link detection started.");

console.log("Scaning links:"+this.links);

}


ContainerDetector.prototype.detect = function(){

console.log("Loading data:"+this.data);

console.log("container detection started.");

console.log("Scaning containers:"+this.containers);

}


//prevent from being altered

Object.freeze(DetectorBase);

Object.freeze(DetectorBase.prototype);

Object.freeze(LinkDetector);

Object.freeze(LinkDetector.prototype);

Object.freeze(ContainerDetector);

Object.freeze(ContainerDetector.prototype);

//export to global object 可以將這些類添加到global對象(對瀏覽器來說為window對象)同時防止其被更改

Object.defineProperties(global,{

LinkDetector:{value:LinkDetector},

ContainerDetector:{value:ContainerDetector},

DetectorBase:{value:ContainerDetector}

});

}(this);

var cd = new ContainerDetector("#abc","#def","#ghi");

var ld = new LinkDetector("

cd.detect();

ld.detect();


舉報

0/150
提交
取消

貌似老師的代碼錯了,有哪位大神糾正下

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號