首页 > 代码库 > String,Array等原生引用对象prototype问题(打X未解决,打勾已解决)
String,Array等原生引用对象prototype问题(打X未解决,打勾已解决)
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‘)) ;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。