javascript - 使用 Object.Create 将函数添加到 JavaScript 对象

标签 javascript oop object-create

我正在尝试在 JavaScript 中使用 Object.Create。我目前有以下代码:

var vehicle = {
        getModel: function () {
        console.log( "The model of this vehicle is.." + this.model );
    }
};

var car = Object.create(vehicle, {
    "id": {
       value: 9,         
    },
    "model": {
       value: "Ford",  
    }
});

var van = Object.create(vehicle, {
  "id": {
     value: 10,    
   },
    "model": {
      value: "Big Van",
      enumerable: true
   },
    "make": {
      value: "Warrior",      
   },
    "getMake": function () {
       console.log( "The make of this vehicle is.." + this.make );
   }
});

我尝试为 getMake 添加函数到 van,但出现错误:

TypeError: Property 'getMake' of object # is not a function when I call:

范.getMake();

这可能吗?你是怎么做到的?

最佳答案

默认情况下,以这种方式创建的属性不可枚举。这可能会导致您的问题。

试试这个(未经测试):

"getMake": { value: function () {
       console.log( "The make of this vehicle is.." + this.make )
   }, enumerable: true };

编辑 看起来这是可行的,因为我们传递的是对象而不仅仅是值。可枚举是不必要的。

关于javascript - 使用 Object.Create 将函数添加到 JavaScript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13565316/

相关文章:

database - 使用类和数据库进行编程

Javascript Object.create 在 Firefox 中不起作用

javascript - AngularJS Controller 中使用 as 语法的服务 promise

javascript - 对象的边界框更改为圆形

java - Java实现多重分类

python - 为什么在 Python 中没有从对象的方法中引用对象成员的简写?

javascript - 从哪个版本开始,IE 可以支持 Object.create(null)?

javascript - Object.create 和内置对象

javascript - 克隆 html 表单标签后图像预览不显示

javascript - 根据传递给组件的 Prop 分配样式组件 CSS 属性