一道JS题目的解析

一道JS题目的解析

var A = (function() {
function Person(name) {
this.name = name;
}

var m = function() {
return "Hello " + this.name;
};

Person.prototype.getGreeting = m;

return Person;
})();

// After this line, what would you write to call into the above code and have it return “Hello Edgar”?
// Answer:
var edgar = new A('Edgar');
edgar.getGreeting();// Hello Edgar

变量A 被赋值成一个自执行函数,最终return出Person这个构造函数,因此A被指引到构造函数Person。
构造函数Person有一个属性name,name由构造函数的参数name传入,另外它还有函数指向变量m,然后m赋给了Person的原型属性getGreeting。
因此要打印出『Hello Edgar』,需要用参数传入Edgar,再调用原型链上的getGreeting方法。

坚持原创技术分享,您的支持将鼓励我继续创作!