(功能)原型究竟是如何工作的

How does (function).prototype work exactly?

本文关键字:工作 何工作 功能 原型 究竟      更新时间:2023-09-26

我正在阅读如何制作Javascript库,我遇到了作者称之为:

    function _() {
        //Some obects and variables and junk. . .
}
_.prototype = {
    //some code. . .
    myFunction: function() {
        //Bla bla bla. . .
    }
}

我想知道这是如何工作的,以及它的作用。我知道它创建了一个_.myFunction()命令,但我不明白如何。我想知道这是否是唯一的方法,以及它是否需要在某处包含其他一些全局变量。

提前感谢!

编辑:通过试验其工作原理,我发现了以下内容:

function _$() {
    //Bla bla bla. . . 
}
_$.prototype {
    myFunc: function(foo) {
        return foo;
    }
}

然后,当我打电话给_$.myFunc时,我得到:Unkown Syntax error: myFunc is not a function正如菲利克斯·金所说,它不可用。谁能告诉我为什么,以及如何使我设置的功能myFunc可访问_$.myFunc(null);

此处正在修改对象__.prototype 属性。您可以在此处阅读有关prototype修改/方法添加的更多信息。

向对象的原型属性添加属性或方法 类使这些项立即可用于该对象的所有对象 类,即使这些对象是在原型之前创建的 属性已修改。

我已经弄清楚了我想做的事情。原型只是对象内部的对象类型,请参阅此。

第二部分,我试图做的是设置一些_$.function(args)可访问的东西通过探索发现的做到这一点的方法是:

var _$ = function() {
    //args and variables etc. . .
};
_$.myFunc = function(args) {
    return args;
}

然后,_$.myFunc(5)返回:5

虽然,这个问题在一年前就已经回答了,但我认为值得分享,以便对读者有所帮助。

function _() {
        //Some obects and variables and junk. . .
        // missing like was 
        return this;
}
_.prototype = {
    //some code. . .
    myFunction: function() {
        //Bla bla bla. . .
    }
}

在上面的代码中,只有混淆是"_",因为javascript的命名准则说"任何变量或函数都可以以_开头"。如果我我们按如下方式编写此代码:

 function Blah() {
            //Some obects and variables and junk. . .
            return this;
    }
  Blah.prototype = {
        //some code. . .
        myFunction: function() {
            //Bla bla bla. . .
        }
    }

现在我认为每个人都可以使用或理解如何使用它。 比如 Joke().myFunction()。

所以我认为这里的混乱是"_"。