prototype相关内容

如何将整个 Javascript 对象字符串化,包括 __proto__ 属性?

如果这是重复的,我很抱歉,到目前为止我找不到相同的问题. 我的 __proto__ 成员中有一个带有各种方法的对象.让我们调用这个对象的类型myObjectType. 稍后我必须做一个JSON.stringify(myObjectType).问题是,当我从之前获得的 JSON 字符串构建我的对象时,我的对象类型是普通的 Object,我失去了我拥有的所有方法. 有人明白为什么吗? ..
发布时间:2021-06-22 20:06:33 前端开发

扩展对象字面量

var x = {名称:“日本",年龄:20}x.prototype.mad = function() {警报(“美国");};x.mad(); 上面的代码不起作用.对象字面量不能扩展?或 x.mad() 不是正确的调用方式. 解决方案 你不能这样做.为了能够使用它的 prototype 定义对象方法和属性,您必须将对象类型定义为构造函数,然后使用 new 运算符创建它的实例.> fu ..
发布时间:2021-06-22 20:06:30 前端开发

DataView 和原型继承

根据我在网上看到的,在 JavaScript 中扩展对象的一种方法是首先克隆它的原型,然后将该原型设置为子类的原型. 它似乎在这里不起作用: //创建构造函数...功能包(操作码,大小){DataView.call(this, new ArrayBuffer(size));setInt8(0, 操作码);}//扩展数据视图 ...Packet.prototype = Object.crea ..
发布时间:2021-06-22 20:06:27 前端开发

我可以在 javascript 中获取原型的所有实例吗?

获取一个对象的原型很容易,但是有没有办法获取所有具有特定原型的实例? 像这样: var allAnimals = Animal.prototype.getInstances(); 可以编写自定义代码来跟踪实例化的对象,但我对是否有任何内置方法感兴趣. 解决方案 你可以试试这样的 函数 A(f){this.field = f;A.instances.push(this);}A.i ..
发布时间:2021-06-22 20:06:24 前端开发

设置prototype.constructor的目的是什么

我一直无法找到对此的明确解释.这是我在 MDN 上找到的一个简单示例.我唯一不明白的是为什么要设置构造函数.有人可以解释为什么需要这样做吗?是为了继承,以便引用正确的原型链吗? //形状 - 超类函数形状(){这个.x = 0;this.y = 0;}//超类方法Shape.prototype.move = function(x, y) {this.x += x;this.y += y;cons ..
发布时间:2021-06-22 20:06:20 前端开发

JavaScript 为什么操作 __proto__ 很慢?

与此线程相关:JavaScript 修改函数原型的更好方法,我想知道为什么变异实例的 __proto__ 是一个缓慢的操作. 我知道它已被弃用,我经常在网上阅读它.但我一直没有找到原因.为什么它真的被弃用了,为什么它很慢? setPrototypeOf() 是否会是更好的解决方案,至于性能? 解决方案 我想知道为什么变异实例的原型是一个缓慢的操作. 在您的浏览器中实现 ..
发布时间:2021-06-22 20:06:14 前端开发

javascript中的自动getter和setter(带验证)

我正在构建一个 javascript 库,我必须在其中创建类日志,其中大多数都有许多必须向用户公开的属性. 例如: function Person(name,age){} 现在我想为属性(名称和年龄)创建 getter 和 setter. Nornall,我必须将这些方法添加到 Person.prototype 中: Person.prototype.getName=functi ..
发布时间:2021-06-22 20:06:11 前端开发

为什么要改变构造函数?

为什么添加原型后构造函数从Foo变成了Object?如何访问原始构造函数? 代码: function Foo() {}var foo1 = new Foo();console.log('foo1:' + foo1.constructor);Foo.prototype = {}var foo2 = new Foo();console.log('foo2:' + foo2.constructo ..
发布时间:2021-06-22 20:06:05 前端开发

扩展函数原型

我希望能够在 javascript 中扩展函数原型(也就是说,向所有函数添加一个函数).目的是将其转换为另一种语言之间交换的格式(即ruby,只能通过字符串进行通信[在此特定设置中]).我已经有了一个系统,所以我可以通过在 ruby​​ 对象上定义 to_js 方法和在 javascript 对象上定义 to_ruby 方法来传递其他类型,就像这样 Number.prototype.to_rub ..
发布时间:2021-06-22 20:06:02 前端开发

我应该修改String的原型吗?

我正准备在 javascript 中创建一个修剪函数,但由于我不想重新发明轮子,所以我用谷歌搜索了这个方法. 我找到了这个链接http://www.somacon.com/p355.php 它提供的解决方案是: String.prototype.trim = function() {return this.replace(/^\s+|\s+$/g,"");}String.prototyp ..
发布时间:2021-06-22 20:05:56 前端开发

展开运算符不复制原型吗?

以下代码似乎没有复制对象的原型. const AnimalProto = {吃() {//函数体},睡觉() {//函数体},}功能animalCreator(原型,属性){返回 {...Object.create(proto), ...属性}}const cat = AnimalCreator(animalProto, { name: 'garfield' })cat.eat()//这是一个错 ..
发布时间:2021-06-22 20:05:53 前端开发

JavaScript 原型 - 请澄清

有人可以帮我理解原型属性吗?我不明白原型属性是函数的属性还是函数内部的属性. 假设我们创建了以下构造函数 Food.此时,函数 Food() 具有属性 Food.prototype.既然 Food 是 Object 的一个实例,那么这意味着 Obect.prototype 是所有用 Food() 创建的对象的原型属性. function Food() {} 然后创建另一个构造函数 Piz ..
发布时间:2021-06-22 20:05:51 前端开发

什么是“原型"?在 C 程序中?

我用来学习 C 的书解释了我无法正确理解的称为“原型"的东西.在书中,以下示例代码解释了这些“原型".这是什么意思?什么是“原型"? ///* two_func.c -- 在一个文件中使用两个函数的程序 */#include 空管家(空);int main(void){printf("我会召唤管家功能.\n");管家();printf("是的!给我来点茶和可写的 DVD.\n");getchar ..
发布时间:2021-06-22 20:05:47 其他开发

JavaScript 函数的prototype 属性的初始值是多少?

我知道 JavaScript 函数对象的 prototype 属性被复制到内部的 [[Prototype]] 属性(又名 __proto__)使用函数作为构造函数实例化的对象.因此,我可以将此属性设置为我想充当原型的任何对象: function Foo() {}Foo.prototype = {toString: function() { return "I'm a Foo!";}}新 Foo( ..
发布时间:2021-06-22 20:05:45 前端开发

打字稿和 __proto__ 属性

因此,每次提到 __proto__ 时,通常都会提到 Brendan Eich 请求不要使用它.我一直在使用 Typescript 中的一些反射,将类的原型链导航到使用它提供的祖先类,并且很想注入一个包含类元数据的原型属性. 是否有人对我可能产生的性能开销有任何具体说明,或者不依赖于 __proto__ 的解决方案? 编辑 - 用代码更新.这只是我输入的一个人为的例子,但它说明了我希望 ..
发布时间:2021-06-22 20:05:41 其他开发

字符串原型修改自身

据我所知,不可能以这种方式从自身修改对象: String.prototype.append = function(val){这个 = 这个 + val;} 那么是不是根本不可能让一个字符串函数修改自己? 解决方案 String 原语是不可变的,它们在创建后不能改变. 这意味着其中的字符可能不会改变,对字符串的任何操作实际上都会创建新的字符串. 也许您想实现某种字符串构建器? ..
发布时间:2021-06-22 20:05:38 前端开发

Javascript 中的 isPrototypeOf

我是 JavaScript 的初学者,正在JavaScript 中的原型. 根据文章这里 创建原型 创建对象原型的标准方法是使用对象构造函数: function person(first, last, age, eyecolor) {this.firstName = first;this.lastName = last;this.age = 年龄;this.eyeColor = 眼睛颜 ..
发布时间:2021-06-22 20:05:36 前端开发