JavaScript原型基础
任何人都可以用简单的语言解释为什么使用JavaScript表达式吗JavaScript原型基础,javascript,Javascript,任何人都可以用简单的语言解释为什么使用JavaScript表达式吗 123.unexistingProperty; 抛出一个错误,而 var v = 123; v.unexistingProperty; (123).unexistingProperty; true.unexistingProperty; "".unexistingProperty; [].unexistingProperty; {}.unexistingProperty; 不 这是与原型设计有关还是仅仅与语言的一些基本原理有
123.unexistingProperty;
抛出一个错误,而
var v = 123;
v.unexistingProperty;
(123).unexistingProperty;
true.unexistingProperty;
"".unexistingProperty;
[].unexistingProperty;
{}.unexistingProperty;
不
这是与原型设计有关还是仅仅与语言的一些基本原理有关
另外,这不仅仅是假设,在对动态生成的代码实现eval时,这是一个问题
这与原型设计有关吗
不,原因是Javascript不允许您直接访问数字文本上的属性
例如,这将不起作用:
123.unexistingProperty;
但这将起作用:
(123).unexistingProperty;
问题是一个数字可以写成10.5的形式,这意味着这个点不能用来访问属性。出于这个原因,您必须在括号之间加上一个数字才能调用该数字的属性
例如:
Number.prototype.fun = function () { return "Fun" }
(100).fun()
(10.5).fun()
v、 不可抗拒的功能;抛出未捕获的TypeError:undefined不是一个函数我认为123是常量,而v是变量,v有一些属性。感觉这个答案的最后部分是唯一有意义的部分:在数字后面使用点歧义,这只是一个语言原理。@vitaly-t