草庐IT

JavaScript prototype.init 疯狂

coder 2024-05-11 原文

谁能解释一下 prototype.init 函数在 JavaScript 中的意义以及它在对象实例化过程中何时被调用?

为什么要用空函数覆盖它?

我正在阅读 JavaScript for Web 这本书,并且在过去的几个小时里一直停留在这个问题上......一段代码应该实现什么?

var Class = function(){ 

var klass = function(){
   this.init.apply(this, arguments); 
};

klass.prototype.init = function(){};

// Shortcut to access prototype 
klass.fn = klass.prototype;

// Shortcut to access class 
klass.fn.parent = klass;

...
}

这对我来说太神奇了...:)

最佳答案

我不确定你不明白什么。 init 只是一个与其他任何方法一样的方法,它恰好在构造函数中被调用,并且具有与构造函数相同的参数。如果它是空的,那只是因为编写它的人暂时不需要在其中放入任何东西,而是想为他的类(class)奠定基础。

function Foo(a, b, c) {
    this.init.apply(this, arguments); //This simply calls init with the arguments from Foo
}

Foo.prototype.init = function(a, b, c) {
    console.log(a, b, c);
}

var f = new Foo(1, 2, 3); //prints 1 2 3

http://jsfiddle.net/Hmgch/

关于JavaScript prototype.init 疯狂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8577541/

有关JavaScript prototype.init 疯狂的更多相关文章

  1. ruby-on-rails - DevKit ruby​​ dk.rb init 不工作 - 2

    我试图按照此链接中的过程在Windows上安装Ruby2.0.0(x64):https://forwardhq.com/support/installing-ruby-windows我被定向到。在查看了其他来源后,我认为这是最容易遵循的来源。我下载了RubyInstaller然后安装了它。但是,之后,桌面上或“开始”菜单中都没有指向RubyIDE的图标了……奇怪。因此,在卸载Ruby2.0.0之后,我安装了Ruby1.9.4。同样的事情。然后我下载了相应的DevKitzip文件,如前所述,所有这些都在将其解压缩到C:\DevKit之前。然后,正如指南所说,我在PowerShell中尝试

  2. git submodule update --init --recursive 父子仓库 - 2

    .gitmodules:记录子模块信息在父项目新建submodule添加:gitsubmoduleadd 子模块仓库地址  子模块在父模块目录下的存储路径。注意:路径不能以/结尾(会造成修改不生效)、不能是现有工程已有的目录(不能順利Clone)删除:首先删除.gitmodules文件下的对应子模块信息,然后 gitrm–cached 克隆下来的项目有submodule拉取submodule: gitsubmoduleupdate--init--recursive更新submodulegitsubmoduleupdate--remote或者在submodule打开gitbash,然后用gitp

  3. Ruby 元类疯狂 - 2

    我卡住了。我正在尝试动态定义一个类方法,但我无法全神贯注于ruby​​元类模型。考虑以下类:classExampledefself.meta;(classClassExample.meta.class#=>ClassExample.class_instance==Example#=>trueExample.class_instance==Example.meta#=>false显然,这两种方法都返回一个Class实例。但是这两个实例不一样。他们也有不同的祖先:Example.meta.ancestors#=>[Class,Module,Object,Kernel]Example.cla

  4. ruby 疯狂 : Class vs Object? - 2

    我刚开始玩JRuby。这是我的第一篇ruby帖子。我很难理解Ruby中的类与对象。它并不像其他面向对象语言中的类和对象那样。举个例子Class.is_a?Object返回真和Object.is_a?Object也是。所以类和对象都是对象又来了一个Class.is_a?Class返回真和Object.is_a?Class也是。等等,我还没说完Object.instance_of?ClassClass.instance_of?Class都对Object.instance_of?ObjectClass.instance_of?Object两者都是错误的。是的,没有什么可以是对象的实例。和Cl

  5. javascript - Qt QML 中疯狂字符串数字比较的解决方法 - 2

    这是Qt(LTS5.6.2)QMLJavaScript实现中疯狂的字符串与数字比较:console.log("240000000000"=="3776798720");console.log("240000000000"==="3776798720");console.log("240000000000"==="3776798721");输出是:truetruefalse看起来字符串被解释为(u)int32并且丢失了高字节:240000000000==0x37E11D60003776798720==0xE11D6000此错误也会影响对象:varg={};varh="2400000000

  6. 【Pytorch】torch.nn.init.xavier_uniform_() - 2

    目录简介torch.nn.init.xavier_uniform_()语法作用举例参考结语简介Hello!非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭昵称:海轰标签:程序猿|C++选手|学生简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖…已保研学习经验:扎实基础+多做笔记+多敲代码+多思考+学好英语! 唯有努力💪 本文仅记录自己感兴趣的内容torch.nn.init.xavier_uniform_()语法torch.nn.init.xavier_uniform_(tensor,gain=1.0)作用根据了解训练深度

  7. javascript - 无法在 init 上使用 angular2-tree 选择树中的所有复选框 - 2

    目标:我有一个名为“feeddata”的按钮,所以当我点击它时,数据将被加载我的意思是这里有复选框的树我的要求是当我点击它和数据时,所有的复选框都必须是检查初始化我尝试使用this.treeComp.treeModel.doForAll((node:TreeNode)=>node.setIsSelected(true));但它不工作下面是我的代码click(tree:TreeModel){this.arrayData=[];letresult:any={};letrs=[];console.log(tree.selectedLeafNodeIds);Object.keys(tree.s

  8. javascript - 带条件语句的 ng-init - 2

    我有一个AngularJS应用程序,当页面加载时会执行getTableData,但我想检查一个变量$rootScope.Dealer并切换初始化的函数名。例如:如果存在$rootScope.Dealer值,我想执行名为getDealerData的函数如果没有设置值需要执行getTableData函数。如何在anglarjs模板中制作它。我刚刚尝试了ng-if,但它不起作用... 最佳答案 您可以像这样在ng-init指令中使用简单的Javascript语法:这是给你的plnkr(我已经将后端路由生成更改为文本):https://pl

  9. javascript - 将 JavaScript 变量传递给 AngularJs ng-init - 2

    我定义了以下javascript变量,需要将memId值传递给AngularJs初始化函数。varmemId="bb7de28f-0f89-4f14-8575-d494203acec7";我收到一个错误:memId未定义。控制台显示ng-init中的memId值未被传入。如何将javascript变量传递给ng-init? 最佳答案 您需要使用$window以“Angular”方式执行此操作:varapp=angular.module('myapp',[]);app.controller('MainCtrl',['$scope','

  10. javascript - init() 和 window.init() 有什么区别? - 2

    我已经通读了以下秘诀,它展示了一种使用GoogleCloudEndpoints后端为AngularJS前端提供动力的方法:https://cloud.google.com/resources/articles/angularjs-cloud-endpoints-recipe-for-building-modern-web-applications我不明白的是关于AngularJS和CloudEndpoints初始化的附录。相关部分如下:Appendix:TipsonAngularJS+CloudEndpointsInitializationTip#1:Becarefulontheini

随机推荐