gpt4 book ai didi

JavaScript 面向对象 : Uncaught TypeError: is not a function

转载 作者:行者123 更新时间:2023-11-30 07:56:58 24 4
gpt4 key购买 nike

创建对象时遇到问题。控制台说最后一行有问题。请告诉我它应该如何,我更熟悉 Java,所以这让我有点困惑。

var dog = {
name:"Dog",
age:"11",
getName : function() {
alert(this.name);
}
}

function Dog(name, age) {
this.name = name;
this.age = age;
}

var d1 = new Dog("Rex", 8);
d1.getName();

最佳答案

你的 dog 只是一个简单的对象字面量,
这意味着您的 getName 已绑定(bind)到它,而不是您的 Dog class

您可以使该函数成为Dog方法:

/*var dog = {
name:"Dog",
age:"11",
getName : function() {
alert(this.name);
}
}*/

function Dog(name, age) {
this.name = name;
this.age = age;
}

Dog.prototype.getName = function() {
console.log( this.name );
}

var d1 = new Dog("Rex", 8);
d1.getName(); // "Rex"

这是一个使用您的设置“默认值”的变体

function Dog() {
this.name = "Dog"; // Default name
this.age = 11; // Default age
}

Dog.prototype.getName = function() {
console.log( this.name );
}

var d1 = new Dog();
d1.name = "Rex"; // Override default name
d1.getName(); // "Rex"

关于JavaScript 面向对象 : Uncaught TypeError: is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37530049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com