为什么我可以在javascript中执行以下操作:
function a() {};
a.foo = 30;
Run Code Online (Sandbox Code Playgroud)
具体来说,为什么我可以在函数a上设置属性?毕竟,我不能这样做:
var a = 20;
a.foo = 30;
Run Code Online (Sandbox Code Playgroud)
小智 6
你真的不能这样做,因为这是一个语法错误
function a = function() {};
Run Code Online (Sandbox Code Playgroud)
我想你只想说:
function a() {}
Run Code Online (Sandbox Code Playgroud)
无论如何.您无法从数字中获取属性的原因是它不是真正的对象.
a = 20;
a.foo = 30; // this works
alert(a.foo); // this alerts nothing
Run Code Online (Sandbox Code Playgroud)
信不信由你,字符串也是如此:
a = "ohai";
a.foo = 30; // this works
alert(a.foo); // this alerts nothing
Run Code Online (Sandbox Code Playgroud)
但是,如果它是String对象,那么它按预期工作:
a = new String("ohai");
a.foo = 30; // this works
alert(a.foo); // this alerts 30
Run Code Online (Sandbox Code Playgroud)
或者如果它是一个Number对象.你明白了.
字符串和数字文字不是Javascript中的对象.这就是原因.
| 归档时间: |
|
| 查看次数: |
3428 次 |
| 最近记录: |