function user(){
user.name ="Amine";
user.lastName ='Meziane';
document.write(user.name);
};
user();
执行时写入" user"只是而不是名字" Amine"
答案 0 :(得分:4)
user
引用user
函数,该函数附带一个初始化为函数名称的现有的,不可分配的name
属性。 user.name ="Amine";
分配将被忽略。
答案 1 :(得分:1)
正如user2357112指出的那样,您的代码尝试修改函数user
的名称属性。此属性不可修改。所以它没有改变。函数user
的name属性包含函数user
的名称,即"user"
:-)。这个名称是你的代码打印出来的。
你可以写:
function user(){
var user = {};
user.name = "Amine";
user.lastName = "Meziane";
document.write(user.name);
};
user();
此处user
(.name
)不会引用函数user
,而是引用局部变量(var
)user
,该变量已初始化为对象文字({}
)。
也许你想编写一个构造函数。然后,您将向this
添加属性。
function User(name, lastname){
this.name = name;
this.lastName = lastname;
return this; //optional
};
var userAmine = new User("Amine", "Meziane"); // don't forget "new"
document.write(userAmine.name);
也许您可以阅读JavaScript Patterns by Stoyan Stefanov以深入了解JavaScript。
答案 2 :(得分:0)
因为函数的名称是只读的。请参阅文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name
答案 3 :(得分:-2)
window.onload = function() {
function user(){
var json = '{"name":"Amine","lastName":"Meziane"}',
obj = JSON.parse(json);
document.body.innerHTML=obj.name+' '+obj.lastName;
}
user();
};
//or
function user(){
var user = {};
user.name ="Amine";
user.lastName ='Meziane';
document.write(user.name);
};
user();