我试图理解以下三个函数之间的区别。在MDN和其他消息来源一天后,我得出了一些“结论”,我想知道是否有人能帮助我验证这些结论。谢谢您:)
块#1 (基于原型的构造函数示例)
function Person (name){
this.name = name;
this.greeting = function(){
alert(this.name);
};
}
var person = new Person('Bob');
块2(另一个基于原型的构造函数示例)
function Person(name) {
this.name = name;
}
Person.prototype.greeting = function() {
alert(this.name);
}
let person = new Person("Bob");
块#3 (基于原型的ES6类示例)
class Person {
constructor(name) {
this.name = name;
}
greeting() {
alert(this.name);
}
}
let person = new Person("Bob");
问题:
name
变量和函数greeting
保留在同一个代码块中,而在块#2中,函数greeting
与变量name
保持分离(使用Person.prototype.greeting
将greeting
函数添加到Person原型中)。Person.prototype.greeting = function () {...}
,与在第1块中将this.greeting = function (...)
置于this.name
以下的结果相同谢谢!
发布于 2019-01-12 21:47:16
回答以下问题:
https://stackoverflow.com/questions/54163996
复制相似问题