为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Javascript 函数创建对象?

如何使用 Javascript 函数创建对象?

至尊宝的传说 2023-07-06 11:06:26
我正在学习 JavaScript 课程。我正在读“对象和类”一章,我不知道如何解决作业中的一些作业。第一个练习是这样的function createCat(name,age){//Create a new object with the property "name" and the value defined by the argument "name".//Add a new property to the object with the name "age" and use the value defined by the argument"age"//Add a methos (function) called meow that returns the string "Meow"!}这就是我正在尝试的 function createCat(name,age){      var Cat={};        Cat.Name=name;        Cat.Age=age;        Cat.meow=function(){return "Meow!"};        return Cat;     }我正在测试将脚本加载到 index.html 文件中的功能,在浏览器中打开该文件,然后在 Web 控制台中测试该功能。我运行该函数没有问题。然后,我测试 Cat 对象是否是通过在控制台中写入 Cat.Name 返回的,这会导致错误。当我在下面的一行代码中调用该函数,然后尝试访问该对象的属性时,也会发生同样的事情。错误显示为“ReferenceError:Cat 未定义”。我究竟做错了什么?谢谢!
查看完整描述

4 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

一种更简洁的方法是完全省略该let Cat = {}部分。您可以使用该函数本身来创建Cat对象。


function Cat(name, age) {

    this.name = name;

    this.age = age;

    this.meow = () => console.log("Meow!");

}


let myCat = new Cat("Waldorf", 16)

let anotherCat = new Cat("Statler", 12)


myCat.meow()

console.log(anotherCat.name)


查看完整回答
反对 回复 2023-07-06
?
森林海

TA贡献2011条经验 获得超2个赞

您的函数返回 Cat,但这只是函数作用域中的一个名称。为了在函数中使用该名称,您需要执行以下操作:


function createCat(name, age) {

        var cat = {};

        cat.Name = name;

        cat.Age = age;

        cat.meow = () => "Meow!";

        return cat;

}


let Cat = createCat("mist", 16);


console.log(Cat)


查看完整回答
反对 回复 2023-07-06
?
温温酱

TA贡献1752条经验 获得超4个赞

您会收到此错误,因为Cat仅在您的函数范围内定义。要Cat全局定义,请使用window.Cat而不是var Cat:


function createCat(name, age) {

  window.Cat = {};

  Cat.Name = name;

  Cat.Age = age;

  Cat.meow = function() {

    return "Meow!"

  };

  return Cat;

}


console.log(Cat.Name);


查看完整回答
反对 回复 2023-07-06
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

如果你想在控制台上输入时获得你的 Cat,Cat.name你必须像这样全局声明它:


function createCat(name, age) {

  return {

    name: name,

    age: age,

    meow: function() {

      return "Meow!"

    },

  };

}

window.Cat = createCat('name', 2);


然后您就可以在全球范围内访问您的 Cat。


您还可以将 Cat 分配给浏览器控制台上的变量并通过Cat.name如下方式访问它:


const Cat = createCat('name', 2);




查看完整回答
反对 回复 2023-07-06
  • 4 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号