gpt4 book ai didi

javascript - JavaScript Function() 和 JavaScript 对象之间的区别

转载 作者:行者123 更新时间:2023-12-02 06:54:29 26 4
gpt4 key购买 nike

我正在尝试理解 JavaScript 中让我感到困惑的一些东西。

假设我想在 JavaScript 中创建一个方法 Guard.ThrowError(),我有两种方法:

  1. 使用对象:

    这基本上是我在网上找到的方法。

    var Guard2 = {
    ThrowIfNull: function() {
    throw new Error('sdmflsfk');
    }
    };
  2. 使用函数:

    当您在 TypeScript 中创建一个“Guard”类并将其编译为 JavaScript 时,您会得到如下内容:

    var Guard = (function() {

    function Guard() { }

    Guard.ThrowIfNull = function () {
    throw new Error('sdmflsfk');
    };

    return Guard;
    })();

这两个函数都可以使用 Guard.ThrowIfNull() 调用。我想知道有什么区别,什么时候选择方法 1 而不是方法 2?

感谢您的宝贵反馈。

亲切的问候

最佳答案

I would like to know what's the difference and when choose I choose approach 1 over approach 2?

唯一的区别是 Guard 是第二个示例中的函数,而不是第一个示例中的函数。所以第二个可以被调用(在那个代码中它实际上没有任何事情,但是它可以被调用);第一个不能。

函数是 JavaScript 中的对象,是真正的对象,因此与所有其他对象一样,它们可以添加额外的属性,例如 ThrowIfNull

jQuery是一个广泛使用的例子:主要功能 jQuery(又名 $)用于其功能性:

$("#foo").on("click", function() { /*...*/ });

...还有它的对象特性,因为它有各种附加的属性,就像您对 Guard 所做的一样:

$.ajax(/*...*/);

关于javascript - JavaScript Function() 和 JavaScript 对象之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34629591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com