如何使用 JavaScript 中的函数构建对象

SB2055

我不认为这是一个基于意见的问题,因为我要求的是“适当”的技术,而不是“最好的”技术或“您最喜欢的”技术。以下选项具有客观的权衡,我想知道处理原型定义和函数定义的行业标准方法是什么。

说我有很多apple对象:

var newApple = function(){
   return  {
      id: new guid(),
      color: red
   }
}
var apple = newApple();

我经常吃这些苹果并调用以下内容:

appleManager.eatApple(apple, fast)

但我想这样做:

var newApple = function(){
   return {
      id: new guid(),
      color: red,
      eat: function(speed){
         // a bunch of logic here
      }
}

然后打电话

apple.eat(fast);

但在我的脑海中,我想到的是所有functions漂浮在周围占据空间的人,而在此之前只有一个函数实例。

我还想知道eat在对象上定义eatApple(this, speed)是否是一个更合适的选项——这样函数就在一个地方,我们只是从对象中引用它。

关于 javascript 对象上行为特定功能的定义,有哪些选项和客观权衡?例子将是花花公子。

杰里诺

这是使用@Potter 提到的原型链的示例。

function Apple(){
    this.id = new guid();
    this.color = 'red';
}

Apple.prototype = {
   eat:function(speed) {
       //do something
   }
}

var apple = new Apple();

apple.eat('fast');
console.log(apple.color);//prints 'red'

Apple函数是一个构造函数。任何附加到this指针并放入原型的东西都将被每个实例“继承”。

在 JavaScript 中,您可以使用原型链模拟经典继承。

function Fruit(color) {
    this.color = color;
}

Fruit.prototype = {
    eat:function() {
      console.log('Eating some fruit.');
    }
};

function Apple(color) {
    Fruit.call(this, color);//Call the parent constructor function
    this.isOnATree = true; //Add some new properties
}
Apple.prototype = Object.create(Fruit); //Inherit all parent methods
Apple.prototype.eat = function() { //Override parent eat method
    console.log('Eating a' + this.color + ' apple');
};

var apple = new Apple('red');
apple.eat(); //Eating a red apple.

另外,我会推荐JavaScript the Good Parts

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用javascript访问在函数中传递的对象参数?

来自分类Dev

如何从对象javascript中删除函数

来自分类Dev

如何遍历javascript对象中定义的函数

来自分类Dev

如何访问在javascript对象中传递的函数?

来自分类Dev

使用函数的参数访问JavaScript中的对象

来自分类Dev

使用构造函数在 Javascript 中创建对象

来自分类Dev

使用JavaScript / jQuery属性中的数组构建普通对象

来自分类Dev

如何使用map函数使用javascript在html元素中呈现对象数组?纯Javascript

来自分类Dev

如何使用对象重用JavaScript函数属性

来自分类Dev

如何使用JavaScript中的函数编程从一对多列表构建倒排地图?

来自分类Dev

如何在函数对象javascript中访问属性函数

来自分类Dev

如何构建基本的JavaScript函数

来自分类Dev

如何在javascript中的另一个函数中使用函数作为对象的属性

来自分类Dev

如何在JavaScript中的构造函数中复制对象

来自分类Dev

如何最小化对象并从 JavaScript 中的对象数组构建数组

来自分类Dev

如何使用内部对象函数Javascript访问外部对象属性

来自分类Dev

在 Javascript 中构建嵌套对象

来自分类Dev

如何使用JavaScript在div中插入对象?

来自分类Dev

javascript中如何使用id调用对象

来自分类Dev

如何在复杂对象中组织Javascript函数

来自分类Dev

如何在javascript中调用窗口对象的用户定义函数

来自分类Dev

如何在JavaScript中为dom对象定义函数

来自分类Dev

如何在函数对象javascript中调用变量

来自分类Dev

如何计算构造函数javascript中的对象数

来自分类Dev

如何将参数对象绑定到JavaScript中的函数?

来自分类Dev

如何从JavaScript中的工厂函数返回不可变对象

来自分类Dev

JavaScript如何在函数中创建新对象?

来自分类Dev

javascript对象-如何在类函数中调用类变量

来自分类Dev

JavaScript如何从Spring Controller中的函数获取ModelAndView对象

Related 相关文章

  1. 1

    如何使用javascript访问在函数中传递的对象参数?

  2. 2

    如何从对象javascript中删除函数

  3. 3

    如何遍历javascript对象中定义的函数

  4. 4

    如何访问在javascript对象中传递的函数?

  5. 5

    使用函数的参数访问JavaScript中的对象

  6. 6

    使用构造函数在 Javascript 中创建对象

  7. 7

    使用JavaScript / jQuery属性中的数组构建普通对象

  8. 8

    如何使用map函数使用javascript在html元素中呈现对象数组?纯Javascript

  9. 9

    如何使用对象重用JavaScript函数属性

  10. 10

    如何使用JavaScript中的函数编程从一对多列表构建倒排地图?

  11. 11

    如何在函数对象javascript中访问属性函数

  12. 12

    如何构建基本的JavaScript函数

  13. 13

    如何在javascript中的另一个函数中使用函数作为对象的属性

  14. 14

    如何在JavaScript中的构造函数中复制对象

  15. 15

    如何最小化对象并从 JavaScript 中的对象数组构建数组

  16. 16

    如何使用内部对象函数Javascript访问外部对象属性

  17. 17

    在 Javascript 中构建嵌套对象

  18. 18

    如何使用JavaScript在div中插入对象?

  19. 19

    javascript中如何使用id调用对象

  20. 20

    如何在复杂对象中组织Javascript函数

  21. 21

    如何在javascript中调用窗口对象的用户定义函数

  22. 22

    如何在JavaScript中为dom对象定义函数

  23. 23

    如何在函数对象javascript中调用变量

  24. 24

    如何计算构造函数javascript中的对象数

  25. 25

    如何将参数对象绑定到JavaScript中的函数?

  26. 26

    如何从JavaScript中的工厂函数返回不可变对象

  27. 27

    JavaScript如何在函数中创建新对象?

  28. 28

    javascript对象-如何在类函数中调用类变量

  29. 29

    JavaScript如何从Spring Controller中的函数获取ModelAndView对象

热门标签

归档