0
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 类但不能添加到字符串类。为什么?

4

2 回答 2

4

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

可以从此链接获得更多信息:

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

希望对你有帮助


于 2012-04-14T07:34:20.177 回答
1

代替:

var s = "Hi";

var s = {};
于 2012-04-14T07:35:08.063 回答