学习JS:为什么在这里抛出Type错误?

时间:2017-09-27 19:20:28

标签: javascript typeerror throw

我正在学习面向对象的Javascript,并试图解决一个非常简单的问题。给定一个字符串,使用以下规则将其转换为另一个字符串:

  • G>> ç
  • C>> ģ
  • T>> A
  • A>> û

这是我的代码:



    var DnaTranscriber = function(){};
    
    DnaTranscriber.prototype = {
        map: {G:'C', C:'G', T:'A', A:'U'},
        toRna: function(dna) {
            return dna.split('').map(this.mapper).join('');
        },
        mapper: function(dnaChar){
            if(this.map[dnaChar]) return this.map[dnaChar];
            throw new Error('Invalid input');
        }
    };

    var d = new DnaTranscriber();
    d.toRna('C');




但是,尝试执行此代码会引发错误:

  

TypeError:无法读取属性' C'未定义的

为什么this.map内的mapper未定义?

0 个答案:

没有答案