javascript中的uber怎么用求解释
PHP中文网
PHP中文网 2017-04-10 14:58:50
0
1
626

javascript中的uber怎么用求解释

PHP中文网
PHP中文网

认证0级讲师

모든 응답 (1)
大家讲道理

uber只是一个对象属性而已,没有什么特殊的。然后虽然看着哟亣多,但其实这就是一个递归而已。我们先把toString的代码抄一下:

Shape.prototype.toString = function() { var result = []; if( this.constructor.uber ) { result[ result.length ] = this.constructor.uber.toString(); } result[ result.length ] = this.name; return result.join(', '); }
  1. 第一次my.toString,此时

    this.constructor.uber.toString = Triangle.uber.toString = TwoDShape.prototype.toString
  2. 这时候调用的就是TwoDShape.toString了,同样再走一遍流程,此时

    this.constructor.uber.toString = TwoDShape.uber.toString = Shape.prototype.toString
  3. 这时候调用的就是Shape.toString了,因为Shape.uber不存在,所以if就直接跳过了,执行后面的result[ reult.length ] = this.name并返回结果,也就是shape

  4. 跳回TwoDShape.toString,此时条件语句就定义了result[0] = 'shape',然后后面就定义了result[1] = '2D shape',所以TwoShape.toString返回的就是shape, 2D shape

  5. 跳回Triangle.toString,根据上一条我们知道条件语句返回的就是result[0] = 'shape, 2D shape',然后后面定义了result[1] = 'Triangle',所以my.toString返回的就是shape, 2D shape, Triangle

    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!