各位前辈好,我在学习JavaScript过程中有这么一个情况不知道怎么理解的。如下:
我定义一个函数,然后再函数体外又以在Person下定义一个sex,这个sex是什么变量,这属于哪个知识点?
function Person() {
this.name = 'tao';
this.getThis = function() {
alert(this.constructor);
};
this.sayName = function() {
this.name;
};
}
Person.sex = 'male'; //我再定义一个这个,对于这个不理解
var p1 = new Person();
alert(p1.sex) //undefined 为什么构造函数的对象不能访问 sex?
alert(Person.sex) // male
Person.prototype.sex = 'male'; 原型链上的才可以
不不不,建议您自己尝试一下
@leoorpio:
我的理解是你的p1是新new出来的,并没有给他赋值,所以是undefined。这和java等语言类似