2014-09-20 67 views
0
function user(){ 
user.name ="Amine"; 
user.lastName ='Meziane'; 
document.write(user.name); 
}; 
user(); 

当执行它写道:“用户”,而不是名称为“胺”为什么下面的Javascript代码不工作?

+1

当您输入问题时没有看到占位符文本。具体是“具体”。你如何问一个好问题?简单... [按照帮助指南](http://stackoverflow.com/help/how-to-ask)。 – spender 2014-09-20 23:07:00

+0

我说它不工作我正在寻找解决方案,它不是创造辩论的东西。谢谢你的评论 – Aminebigboss 2014-09-21 10:31:56

回答

-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();

+2

为什么要使用JSON?看起来完全是多余的;你可以使用一个对象文字。 – user2357112 2014-09-20 23:54:16

+0

这就是要点。我不知道哪个是Json,哪个是Pure Java。图书馆让我疯狂!你能帮助我吗?谢谢 – Aminebigboss 2014-09-21 10:30:55

+0

这是Json,我正在尝试学习纯Java。也许我写了一个反模式不行? – Aminebigboss 2014-09-21 10:50:33

4

useruser功能,附带了一个现有的,不可分配name属性初始化函数名。 user.name ="Amine";分配被忽略。

+1

是的,OP可能希望'新用户()'和'this.name = ...'。 – kay 2014-09-20 23:03:11

+1

@Kay或'function user(){var user = {}; ''。 – dfsq 2014-09-20 23:04:12

+0

但在JavaScript课程的开始,他们说每件事都被视为对象否?所以函数和变量和类是对象?感谢您的评论。 – Aminebigboss 2014-09-21 10:33:43

1

由于user2357112指出,您的代码试图修改功能user的name属性。该属性不可修改。所以它不会改变。功能user的名称属性包含功能user的名称,即"user" :-)。这个名字就是你的代码打印出来的。

你可以写:

function user(){ 
    var user = {}; 
    user.name = "Amine"; 
    user.lastName = "Meziane"; 
    document.write(user.name); 
}; 
user(); 

这里user.name)将不参考功能user,但局部变量(varuser,这是一个对象文本({})初始化。

也许你想写一个构造函数。然后你会添加属性到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的知识。

+0

与Java相同,但她的功能不错。非常感谢你 – Aminebigboss 2014-09-21 10:48:38