我刚开始阅读JavaScript:好的部分,我已经对Function.prototype.method中的'返回'做了什么感到困惑?我理解“这个”和“回归”是如何运作的。 'this'本质上是当前对象的指针,'return'只是在输出一个值时退出函数,如果你描述的话;在我们的例子中,'this'。
这是我引用的代码。
Function.prototype.method = function(name, func) {
this.prototype[name] = func;
return this;
}
/* SIMPLE CONSTRUCTOR */
function Person(name, age) {
this.name = name;
this.age = age;
}
/* ADD METHODS */
Person.method('getName', function() { return this.name; });
Person.method('getAge', function() { return this.age; });
var rclark = new Person('Ryan Clark', 22);
console.log(rclark.getName()); // string(Ryan Clark)
console.log(rclark.getAge()); // number(22)
我尝试省略'return this'以查看代码是否会中断,但它不会?究竟什么'回归'呢?我将继续阅读这本书,但我想确保我理解一切。任何帮助将不胜感激。
答案 0 :(得分:4)
它允许链接,所以你可以做这样的事情:
/* ADD METHODS */
Person.method('getName', function() { return this.name; })
.method('getAge', function() { return this.age; });
答案 1 :(得分:1)
return this
返回调用method()
的对象,并在通过向其添加传递的方法修改它之后。
省略它不会破坏你的代码,但它是一个更好的样式,允许链式方法调用,所以你可以举例:
Person.method('getName', function() { return this.name; }).method('getAge', function() { return this.age; });