我正在尝试使用Javascript开发自定义原型(请参阅下面的代码)。
如果我用 $ 字符替换 $ 字符,此代码可以正常工作。但是,我更喜欢在 $ 字符上使用 $ 字符。如果我使用₹字符,我会收到以下错误消息:
未捕获的SyntaxError:无效或意外的令牌
是否有任何方法或解决方法可使下面的代码与₹字符一起使用?
<!DOCTYPE html>
<html lang="en-IN">
<head>
<meta charset="UTF-8" />
<script>
function ₹(input){
this.input=input;
var customPrototype={};
customPrototype.upper=function(){
return input.toUpperCase();
}
customPrototype.count=function(){
return input.length;
};
customPrototype.lower=function(){
return input.toLowerCase();
}
customPrototype.__proto__ = ₹.prototype;
customPrototype.constructor = ₹;
return customPrototype;
}
₹.prototype = {
top: function() {
return this.upper();
},
size: function() {
return this.count();
},
bottom: function() {
return this.lower();
}
};
</script>
</head>
<body>
<script>
console.log(₹("ProgrAmmeR").top());
console.log(₹("ProgrAmmeR").bottom());
console.log(₹("ProgrAmmeR").size());
</script>
</body>
</html>
答案 0 :(得分:5)
JavaScript允许标识符中的各种字符(details in the spec here)。标识符的第一个字符比后续字符更受限制,但仍然允许很多自由。
第一个字符必须是$
,_
或带有&#34; ID_Start&#34;的Unicode字符。根据Unicode标准(spec link)的属性。 The character ₹没有ID_Start,因此您无法将其用作JavaScript标识符的第一个字符。
后续字符必须为$
,_
或带有&#34; ID_Continue&#34;的Unicode字符。属性。 FWIW,您根本无法在标识符中使用该字符,因为它也没有ID_Continue。
为什么$
(一个卢比标志)和₹
,£
,€
等其他货币符号允许¥
(一个美元符号) ,这样的不是吗?纯粹是因为Brendan Eich认为在标识符中允许$
并使其成为例外是有用的。
如果您愿意,可以使用Rs
。不太好,但是......
function Rs() { }
Rs.prototype = ...;