码迷,mamicode.com
首页 > 其他好文 > 详细

String,Array等原生引用对象prototype问题(打X未解决,打勾已解决)

时间:2014-06-29 19:11:00      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   2014   art      

1、2014年6月29日 10:51:44
    原型模式
      疑问一:
        String类型中,动态为其加入函数时候,可以通过String.prototype.[[functionname]] = function(){}方式或者直接string.[[functionname]] = function(){},但是遇到了一个问题,当创建一个实例时,只有前者可以运行,后者报错找不到该方法,如:var msg = ‘hello world‘ ; msg.[[functionname]] ;  ×
         疑问二:
               直接调用String.[[functionname]]可行。×

 

     解答:疑问一:我自己试过很多次,直接以对象名添加方法只存在与该对象构造方法之外。实例化对象是无法得到该方法的。但是可以利用寄生构造函数模式来实现,不过就有点“曲线救国”的味道:

function SpecialString(msgstr){
    var msg = new String(msgstr) ;
    msg.startWith = function(text){
        return this.indexOf(text) === 0 ;
    }

    return msg ;
}

var msg = new SpecialString(‘hello world‘) ;
alert(msg.startWith(‘h‘)) ;

 

 

 

 

 

String,Array等原生引用对象prototype问题(打X未解决,打勾已解决),布布扣,bubuko.com

String,Array等原生引用对象prototype问题(打X未解决,打勾已解决)

标签:style   blog   color   2014   art      

原文地址:http://www.cnblogs.com/dqmore/p/3814889.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!