谁能给我解释这段代码(出现警告 “嗨!我叫 Mark”
):
function Person(name) {
var self = this;
this.name = name;
function person(){
alert("Hi! My name is "+self.name);
}
return {person:person};
}
new Person("Mark").person();
如果 return {person:person};
被删除,为什么我看不到警报?这里的 person:person
是什么?
另外,为什么 this.name
(不是 self.name)在 function person(){}
中未定义?
最佳答案
主要问题是你不应该返回 {person:person},但你不应该指定 return 或“return this;”。
new Person("Mark") 将创建一个 Person 实例,但函数 Person 返回 {person:person}。在 {person:person} 里面,正确的 one(value) 是方法。 var x = new Person("Mark") 将返回 {person: function person(){alert("Hi...")}。 x.person() 将显示警报。
关于javascript:这段代码需要解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22071738/