(功能)原型究竟是如何工作的
How does (function).prototype work exactly?
我正在阅读如何制作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()。
所以我认为这里的混乱是"_"。
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- 在JavaScript中的类中,push和concat的工作方式有何不同
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)