我正在学习 JS,并注意到在创建一个对象后,您可以将外部函数作为其方法,而在赋值过程中会在对象内部创建一个新元素(用于存储函数)。如果我们想在构造函数中添加一个函数,我们只能将一个外部函数赋值给一个已经存在于构造函数中的元素。
问题是——有没有办法在构造函数中创建一个新元素(并为其赋值,就像函数一样)?
这是一个例子。如果我理解正确的话,它dog.newSound = changeSound;
可以工作是因为它是一个对象,而animal.newSound = changeSound;
不能工作是因为它是一个构造函数。有没有另一种方法可以为构造函数做同样的事情?
//Конструктор
function Animal(name, age, sound) {
this.name = name;
this.age = age;
this.sound = sound;
}
//внешняя функция
function changeSound(sound) {
this.sound = sound;
}
//объект созданный с помощью конструктора
var dog = new Animal("Jack", 5, "gav-gav")
//создали переменную в объекте и присвоили ей функцию
dog.newSound = changeSound;
dog.newSound("woof-woof"); // вызвали функцию
//пишем на страницу
var here = document.getElementById("placeHere");
here.innerHTML = dog.sound;
<p id=placeHere></p>
用于
Animal.prototype
向类型的所有对象添加方法Animal
。