prototype-programming相关内容

如何使一个JavaScript对象的原型永久化?

我可以强制不更改对象的原型吗? 注意!有一些要求: 对象的行为应类似于常规对象文字(添加/删除/配置/修改对象的属性和描述符), 真正的唯一新限制是原型是永久性的。 因此,除了原型是永久性的之外,我不想添加任何其他限制(像Object.seal/freeze/preventExtensions这样的工具对对象施加了更多限制)。 我是否必须修补🐒Object.protot ..

如何在头文件和c文件中声明函数指针?

我对如何在头文件中声明函数指针有点困惑.我想在 main 和一个名为 menus.c 的文件中使用它,并在我假设的 menus.h 中声明它.我们要初始化指向某个函数. 看起来像这样: void (*current_menu)(int); 我们在 menus.c、menus.h 和 main 中写了什么? 解决方案 函数指针仍然是指针,也就是说它仍然是变量. 如果您希望一个 ..
发布时间:2022-01-11 16:49:05 其他开发

真的没有办法在 IE (<8) 中暴露 html 元素的原型吗?

我设计了一个模式来使用它们的原型来创建和扩展 html 元素.这在非 ie 浏览器中就像一个魅力.示例代码可见@jsbin(见页面源码) 这种模式的优势应该是速度(方法在元素原型链中,所以被引用一次).你猜对了:IE 不行.在 IE 中8 html 元素的原型是隐藏/不可访问的,因此对于您创建的每个元素,您必须再次引用非标准方法(如果您密集使用该模式,则会留下很多指针).我在网上搜索了解决方 ..

Javascript 是一种基于原型的语言是什么意思?

据说 Javascript 的主要优点之一是它是一种基于原型的语言. 但是 Javascript 基于原型意味着什么,为什么这是一个优势? 解决方案 原型继承是一种面向对象的代码重用形式.Javascript 是唯一使用原型继承的[主流] 面向对象语言之一.几乎所有其他面向对象的语言都是经典的. 在经典继承中,程序员编写一个类,该类定义了一个对象.可以从同一个类中实例化多个对象 ..
发布时间:2021-12-11 23:49:17 前端开发

基于原型与基于类的继承

在 JavaScript 中,每个对象同时是一个实例和一个类.要进行继承,您可以使用任何对象实例作为原型. 在 Python、C++ 等中,有类和实例,它们是独立的概念.为了进行继承,您必须使用基类创建一个新类,然后可以使用该类生成派生实例. 为什么 JavaScript 朝这个方向发展(基于原型的面向对象)?与传统的基于类的 OO 相比,基于原型的 OO 有哪些优点(和缺点)? ..
发布时间:2021-12-11 23:43:08 前端开发

原型继承相对于经典继承的好处?

所以这些年来我终于停止了拖延,并决定“正确地"学习 JavaScript.语言设计中最令人头疼的元素之一是继承的实现.有 Ruby 经验,我很高兴看到闭包和动态类型;但是我终生无法弄清楚使用其他实例进行继承的对象实例有什么好处. 解决方案 我知道这个答案晚了 3 年,但我真的认为当前的答案没有提供关于 原型继承如何优于经典继承. 首先让我们看看 JavaScript 程序员在为原型继 ..

JavaScript:Class.method 与 Class.prototype.method

以下两个声明有什么区别? Class.method = function () {/* 代码 */}Class.prototype.method = function () {/* 使用 this.values 的代码 */} 可以将第一条语句视为静态方法的声明,将第二条语句视为实例方法的声明吗? 解决方案 是的,第一个函数与 构造函数,你可以把它当作一个'静态方法'. 在 Ja ..
发布时间:2021-12-11 23:41:09 前端开发

对数组中的属性值求和的更好方法

我有这样的事情: $scope.traveler = [{描述:'高级',数量:50},{描述:'高级',数量:50},{描述:'成人',数量:75},{描述:'孩子',数量:35},{描述:'婴儿',数量:25},]; 现在有了这个数组的总数量,我正在做这样的事情: $scope.totalAmount = function(){无功总计 = 0;for (var i = 0; i ..
发布时间:2021-11-18 00:57:03 前端开发

从原型函数访问属性

我正在重用旧应用程序(游戏),因此可以同时运行多个游戏.由于这个原因,我已将属性更改为“this.propery",它们在我的应用程序中随处可见.但是,唯一可以访问属性的原型函数是“startGame".我已经尝试过“this.bricks"和“Game.bricks",但是当试图在“startGame"的任何其他函数中访问它们时,两者都未定义. 对我有什么建议吗? var game = ..
发布时间:2021-09-07 18:33:04 前端开发

澄清 javascript 无法删除继承的属性.

伙计们.我正在研究对象的属性,有一件事引起了我的注意.整个文档中的这一部分说明了有关 JS 的内容. 原型属性JavaScript 对象继承其原型的属性. delete 关键字不会删除继承的属性,但如果删除原型属性,则会影响从原型继承的所有对象. 我有点迷失在这里...我知道这听起来很愚蠢,但我需要确切了解这在可能会发挥作用的流程和应用程序中意味着什么. 解决方案 del ..

JavaScript:修改对象变量的原型?

这是一个对象: var obj = new function(){this.prop = {};} 我尝试做类似的事情: obj.prop.prototype["new_attr"] = "some_value"; 我想做的是永久修改 obj.prop 以包含新属性.据我所知,所有“对象"都有原型,但 JavaScript 告诉我 prop 没有原型. 也许我采取了错误的方法(试 ..
发布时间:2021-06-11 19:40:07 前端开发

“原型属于该类而不是实例"是什么?在JavaScript中意味着什么?

我问了一个问题: 为什么我不能声明构造函数实例化一个对象然后访问原型吗? 您会看到我已标记答案.我理解回应,但是林先生对他的意思有些困惑: 原型属于类,而不是实例: 这是否意味着javascript在此示例中具有一个类?我以为javascript是无类的?它仅具有函数构造函数...函数构造函数在什么时候成为类?当您使用.prototype访问器向其添加其他成员时,是这样吗? ..
发布时间:2021-05-19 20:21:01 前端开发

除了模仿经典类系统之外,JavaScript原型系统还能做什么?

原型系统看起来比传统的类系统灵活得多,但是人们似乎对模仿传统的类系统的所谓“最佳实践"感到满意: function foo(){//在此处定义实例属性}foo.prototype.method =//在这里定义实例方法新的foo() 原型系统还必须具备其他所有灵活性. 在模仿类之外还有原型系统的用途吗?原型可以做哪些事情,哪些类不能做,或者没有呢? 解决方案 原型系统提供了元 ..
发布时间:2021-05-19 19:15:42 前端开发

如何用UML类图表示Javascript对象创建?

我在为JavaScript APP绘制准确的UML类图时遇到了一些麻烦.我已经阅读了一些UML参考资源,但是仍然找不到适合我的情况的答案,因为所有示例都基于C ++/Java的经典继承和类模型. 我想用构造函数和原型对象的扩展来表示自定义JavaScript对象的创建,这与C ++/Java类实例化完全不同. 您如何用UML类图表示我的代码的简化版本? var Book = fun ..