gpt4 book ai didi

javascript - 原型(prototype)未按预期工作

转载 作者:行者123 更新时间:2023-11-29 14:50:06 24 4
gpt4 key购买 nike

我使用以下代码来学习 JS 原型(prototype)以及如何使用对象,(在我在网上阅读它之后我是 JS 的新手......)我想创建一个其他类可以使用的根对象并延伸不确定我是否做对了......目前我在声音上有错误(无法设置未定义的属性“声音”),知道我做错了什么或者可能有更好的方法来编写它,(对我来说这是第三稿...:) )

var obj = function(name){

this.name = name;
};

obj.prototype.getName = function(){
return this.name;
}

var person = new obj("Bill");

console.log(person.getName());


var animal = new obj();

animal.prototype.sound = function(sound){
console.log(sound)
}


var dog = new animal();


dog.sound("wof");

最佳答案

发生这种情况是因为声音未定义 - 该属性不存在。

创建具有声音属性的对象的简单方法如下(使用 jquery):

var animal = { walk: function(){ return 'animal is walking'; }, legs: 4  }

var dog = $.extend({ sound: '' }, animal);

dog.sound = 'woof';

您的示例无法运行的原因是因为您实例化了 obj 的新实例 - 它没有声音属性。所以你需要一种机制来扩展你实例化的对象。因此,在我的示例中,我向您展示了一种快速简便的方法。

关于javascript - 原型(prototype)未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27173578/

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