向string对象添加属性的问题

时间:2012-04-14 07:21:22

标签: javascript

var s = "Hi";

Date.now = function (){
    return new Date();
}

s.createdOn = function (){
    return new Date();
}

alert(s.createdOn()); // This is not working
alert(Date.now()); // This works fine

我违反了任何规则。因为我可以将新属性添加到Date类,但不能添加到字符串类。为什么呢?

2 个答案:

答案 0 :(得分:4)

您无法向字符串文字添加属性或方法的原因是,当您尝试访问文字的属性或方法时,Javascript解释器会临时将字符串的值复制到新对象中,然后使用该对象的属性或方法。这意味着String文字只能访问字符串的默认属性或方法以及已作为原型添加的属性。

可以从以下链接获取更多信息:

http://www.hunlock.com/blogs/The_Complete_Javascript_Strings_Reference

希望这会对你有所帮助


答案 1 :(得分:1)

取代:

var s = "Hi";

var s = {};