gpt4 book ai didi

javascript - 将原型(prototype)方法放入 js 字典中

转载 作者:行者123 更新时间:2023-11-30 17:58:14 25 4
gpt4 key购买 nike

编辑: 这是一个 fiddle ,说明为什么我不能执行我制作的 c.Get.Css() ....它涉及深度复制。 http://jsfiddle.net/5YnhP/

我正在制作一些 javascript 的原型(prototype):

var Control = {};
Control.Textbox = function(){};
Control.Textbox.prototype.Get = function(){};
Control.Textbox.prototype.Set = function(item){};

所以它说:

var c = new Control.Textbox();
c.Get();

我想稍微改革一些东西来组织方法,所以它会做类似的事情:

var Control = {};
Control.Textbox = function(){
this.Get = {};
this.Set = {};
this.Get.prototype.Css = function(){};
//...
};

或者应该说:

var Control = {};
Control.Textbox = function(){
this.Get = {};
this.Set = {};
};
Control.Textbox.Get.prototype.Css = function(){};

然后在控制台中执行一些操作,例如:

var x = new Control.Textbox();
x.Get.Css();
x.Set.Css("herp","derp");

我将如何按照我的意愿去做这件事?我想将不同的电话组织成这样的分组。

我正在努力寻找解决方案,但在过去的几个小时里,我还没有找到。

最佳答案

您编写它的方式不起作用,因为普通对象没有 prototype 属性,只有函数有。所以不是这个:

var Control = {};
Control.Textbox = function(){
this.Get = {};
this.Set = {};
this.Get.prototype.Css = function(){};
//...
};

你可以简单地这样写:

var Control = {};
Control.Textbox = function(){
this.Get = {};
this.Set = {};
this.Get.Css = function(){};
//...
};

现在你可以做你原来想做的事了:

var x = new Control.Textbox();
x.Get.Css();
x.Set.Css("herp","derp");

FIDDLE

如果出于某种原因,您依赖于 Get 原型(prototype)中的 Css 方法,您可以通过以下方式创建 this.Get使用构造函数:

var get = function(){}
get.prototype.Css = function(){};
this.Get = new get();

在较新的浏览器中,您还可以使用 Object.create 创建具有指定原型(prototype)的对象:

this.Get = Object.create({
Css : function(){};
});

关于javascript - 将原型(prototype)方法放入 js 字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17684933/

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