我不确定为什么这是必要的。如果我正在接受“名称”参数,如果没有先将其设置为“this.name”,为什么不能将其作为“名称”引用?
原谅我的无知,我是新人。
function Animal(name, numLegs) {
this.name = name;
this.numLegs = numLegs;
}
Animal.prototype.sayName = function() {
console.log("Hi my name is " + this.name);
};
答案 0 :(得分:1)
this.name
表示实例变量,而name
变量是函数范围内的参数(在本例中为构造函数)。
通过此分配,将局部变量的值分配给实例变量。
答案 1 :(得分:0)
这不是一个javascript的东西,它是一个OOP的东西。您希望将对象的属性与其他范围隔离。
var Animal = function(name) {
this.name = name;
};
var name = "foo";
var dog = new Animal("bar");
// shows "foo"
console.log(name);
// shows "bar"
console.log(dog.name);
答案 2 :(得分:0)
使用代词“他”。我们可以这样写:“约翰跑得快,因为约翰试图赶上火车。”我们不会以这种方式重复使用“约翰”。以类似的优雅方式,在JavaScript中,我们使用this关键字作为快捷方式,指示对象;它指的是一个物体;也就是说,上下文中的主题,或执行代码的主题。考虑这个例子:
var person = {
firstName: "Penelope",
lastName: "Barrymore",
fullName: function ()
// Notice we use "this" just as we used "he" in the example sentence earlier?:
console.log(this.firstName + " " + this.lastName);
// We could have also written this:
console.log(person.firstName + " " + person.lastName);
}
}
答案 3 :(得分:0)
嗯......你正在使用一个对象构造函数和原型,而不仅仅是一个带有两个参数的函数,例如:
function Animals(pet1, pet2) {
var pets = "first pet " + pet1 + " second pet " + pet2;
console.log(pets);
}
Animals("Tiger", "Lion");
所以引用您的参数为' this.name'如果你知道我的意思,是sayName()的原型。 FOR MORE.