日期:2014-05-16  浏览次数:20518 次

String.prototype的问题...
String.prototype.a   =function(){
        alert(this);
}
var   v   =   ' <div> bbb </div> ';
v.a();

这样可以正常调用,但以下却不行:
String.prototype   =   {
        a   :   function(){
                alert(this);
        }
}
var   v   =   ' <div> bbb </div> ';
v.a();

为什么?

------解决方案--------------------
有这样的写法么
------解决方案--------------------
都是 prototype.js 这个东东惹的祸,严格来讲你第二种写法是错误的写法,String.prototype 已经是一个内建的对象了,你只需对它进行属性扩充即可,而你对它进行了赋值且你赋的还是一个 new Object(),象String 这样的系统对象的 prototype 不等同 new Object()
------解决方案--------------------
都是 prototype.js 这个东东惹的祸
================================
同意,呵呵 :)
------解决方案--------------------
http://bbs.51js.com/viewthread.php?tid=67217&highlight=%2B%D4%C2%D3%B0
------解决方案--------------------
所以,是只读。。^o^
<script type= "text/javascript ">
var old = String.prototype, new_ = {};
String.prototype = new_;
alert((old == String.prototype) + ": " + (String.prototype == new_));
</script>
这样。。那个写错了。。