当前位置: 首页 > 知识库问答 >
问题:

将属性或函数附加到函数对象是否存在任何问题

邬飞捷
2023-03-14

虽然将属性或对象附加到函数对象是完全可能的,但我想知道它是否存在不太明显的问题?我似乎在网上找不到任何具体的东西来谈论这件事。

var f = function(){};
f.blah = function(){};

共有1个答案

利思源
2023-03-14

将属性附加到函数是Javascript模拟面向对象编程的核心。

类由函数对象表示,附加到函数对象的属性规定了方法、成员和继承。

例如:

Class Animal:
    def moves:
        print("moves")
    def calls:
        print("calls")

Class Bird < Animal:
    def moves:
        print("flies")

Class Ostrich < Bird:
    def moves:
        print("runs")
    def calls:
        print("HONK")

在Javascript中会像这样表示:

var Animal = function() { console.log("Animal constructor"); }
Animal.prototype.moves = function() { console.log("moves"); }
Animal.prototype.calls = function() { console.log("calls"); }

var Bird = function() { Animal.call(this); console.log("Bird constructor"); }
Bird.prototype = Object.create(Animal.prototype);
Bird.prototype.moves = function() { console.log("flies"); }

var Ostrich = function() { Bird.call(this); console.log("Ostrich constructor"); }
Ostrich.prototype = Object.create(Bird.prototype);
Ostrich.prototype.moves = function() { console.log("runs"); }
Ostrich.prototype.calls = function() { console.log("HONK"); }

有关更多信息,请查看:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript

 类似资料:
  • 问题内容: 我正在返回从ORM中提取的对象数组的json_encode()。它包含许多具有空值的属性。删除这些为空的属性的最巧妙方法是什么?我想我可以遍历这些属性,看看它们是否为空,然后对该属性进行unset(),但是肯定有一种更优雅的方法吗? 问题答案: 试试这个; 它仅适用于简单对象,但如果它来自ORM,则应该足够简单。 感谢Gordon昨天对另一个问题的回答,给了我这个主意。 这是由 将对象

  • 是否存在线性加密哈希函数? 所谓线性,我是指函数“f”,这样: 对于某个大常数 n,mod n 在哪里

  • 我可能忽略了最简单的解决方案,但我已经尝试了任何我能想到或在互联网上找到的方法。 我试图添加一个属性到我的JSON对象,我需要在我的输出。但是无论我尝试添加属性,它都不会显示在我的对象中。我验证了'doc'变量是一个实际对象。 没有控制台错误。Console.log()显示doc对象的内容,仅此而已。 有人知道发生了什么吗? blogPost/doc的输出 在浏览器中进行这样的简单测试确实有效。所

  • 我想通过将变量传递到参数来检查using function是否在对象中存在该属性。我尝试了所有三种常用的方法来检查对象的现有属性,但仍然得到了未定义的输出。有人能告诉我哪里错了吗?。

  • 以前,我遇到了多个Matplotlib图形之间的干涉问题。最后,我发现了一个问题,一些pyplot函数不附加到它们的figure实例,但可以在并行创建的其他figure实例中呈现。 下面是一些示例代码: 上面的例子中的等高线py图函数可以在图1中渲染,但偶尔也会在并行生成的其他图中渲染。那很烦人。有什么方法可以将等高线py图函数附加到图1吗?

  • each_.each(list, iteratee, [context]) Alias: forEach 遍历list中的所有元素,按顺序用每个元素当做参数调用 iteratee 函数。如果传递了context参数,则把iteratee绑定到context对象上。每次调用iteratee都会传递三个参数:(element, index, list)。如果list是个JavaScript对象,ite