Function.prototype.isEmpty = function () {
return this.toString() == function(){}
}
Interface = {
iface : function()
{
if (this.constructor == Interface.iface.prototype.constructor)
throw 'can\'t instantiate interfaces'
//sem o {}, como no PHP, da erro
this.method1 = function(){}
this.method2 = function(){}
for(att in this)
//Foi necessário esta verificação, porque não existe isEmpty em outro objeto, senão em Function
if(typeof this[att] == 'function')
if (this[att].isEmpty())
throw 'You must implement the method ' + att
/**/
},
}
Class = {
cls : function()
{
Interface.iface.call(this)
this.property = 'public property'
}
}
cls = new Class.cls()
Gostaria que a saída de erro fosse you must implement the method2. Já que o mesmo não foi implementado em Class. Mas a saída de erro, está sendo "you must implement the method1", e o mesmo está sendo implementado em Class. Eu sei porque está acontecendo, mas não sei como resolver. Alguém quer dar um palpite?
Pergunta
Rafael Laurindo
Agora é que são elas !!!
Gostaria que a saída de erro fosse you must implement the method2. Já que o mesmo não foi implementado em Class. Mas a saída de erro, está sendo "you must implement the method1", e o mesmo está sendo implementado em Class. Eu sei porque está acontecendo, mas não sei como resolver. Alguém quer dar um palpite?
Editado por Rafael LaurindoLink para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.