javascript - Javascript .call 函数返回额外的“未定义”值
问题描述
在以下代码段中:
function Product(name, price) {
this.name = name;
this.price = price;
this.show = function() {
console.log(this.name);
console.log(this.price * 10);
};
}
function Food(name, price) {
Product.call(this, name, price);
this.category = 'food';
}
function Toy(name, price) {
Product.call(this, name, price);
this.category = 'toy';
}
var cheese = new Food('feta', 5);
var fun = new Toy('robot', 40);
console.log(fun.show());
我得到的控制台输出是:
robot
400
undefined
为什么第三个输出undefined
是从哪里来的?
解决方案
默认情况下,JS 函数返回未定义。
由于您的show
函数没有显式返回任何内容,因此它返回未定义。
推荐阅读
- latitude-longitude - 将经纬度四舍五入到大约 500 米以内
- javascript - 如何根据 React 和 JS 中的内容更改颜色文本
- visual-studio - 如何在 Visual Studio 中检查函数的返回值?
- kivy - Kivy MDDropDownMenu 回调函数未被调用
- file-upload - 使用表单数据发布 PDF 文件:文件损坏?
- r - 将趋势线添加到 DT 表
- sql - 使用 sql (oracle) 识别列中的重复项
- ruby-on-rails - Rails 将一行添加到只有标题且没有数据的 csv 删除标题
- c - 将库链接到可执行文件时诊断未定义符号
- c++ - 使用 malloc 时调用类成员的构造函数