未设置对象的数据成员值

时间:2015-03-05 18:24:39

标签: javascript object

设置数据成员的值后,我收到意外的输出。这种行为背后的理由是什么?

function studentClass(id, name) 
{
    this.id = id;
    this.name = name;
    this.print = function() { 
        alert(id + ": " + name);
    }
}

var s = new studentClass(101, "Vijay");
s.print();     // 101, Vijay
alert(s.id);   // 101
alert(s.name); // Vijay

s.id = 102;
alert(s.id);  // 102 
s.print();    // 101, Vijay Why?

https://jsfiddle.net/00d1cvxL/5/

1 个答案:

答案 0 :(得分:3)

您应该在alert(this.id + ": " + this.name);功能中使用print。 之前它显示了您传递给id的参数namestudentClass