Questions tagged «prototype»


29
__proto__VS。JavaScript原型
该图再次显示每个对象都有一个原型。构造函数Foo也具有其自己__proto__的Function.prototype,而Foo又通过其__proto__属性再次引用Object.prototype。因此,重复一遍,Foo.prototype只是Foo的显式属性,它引用b和c对象的原型。 var b = new Foo(20); var c = new Foo(30); __proto__和之间有什么区别prototype? 该图取自dmitrysoshnikov.com。


10
了解Object.create()和new SomeFunction()之间的区别
最近,我偶然发现了Object.create()JavaScript中的方法,并试图推断出它与通过创建对象的新实例有何不同new SomeFunction(),以及何时要使用一个实例。 考虑以下示例: var test = { val: 1, func: function() { return this.val; } }; var testA = Object.create(test); testA.val = 2; console.log(test.func()); // 1 console.log(testA.func()); // 2 console.log('other test'); var otherTest = function() { this.val = 1; this.func = function() { return this.val; }; }; var otherTestA = …

13
将JSON字符串解析为JavaScript中的特定对象原型
我知道如何解析JSON字符串并将其转换为JavaScript对象。您可以JSON.parse()在现代浏览器(和IE9 +)中使用。 太好了,但是我怎样才能把那个JavaScript对象变成一个特定的 JavaScript对象(即具有特定的原型)呢? 例如,假设您有: function Foo() { this.a = 3; this.b = 2; this.test = function() {return this.a*this.b;}; } var fooObj = new Foo(); alert(fooObj.test() ); //Prints 6 var fooJSON = JSON.parse({"a":4, "b": 3}); //Something to convert fooJSON into a Foo Object //....... (this is what I am missing) …

16
用Javascript扩展对象
我目前正在从Java转换为Javascript,这对我来说很难找出如何以我想要的方式扩展对象。 我已经看到互联网上有几个人使用一种称为对象扩展的方法。该代码将如下所示: var Person = { name : 'Blank', age : 22 } var Robot = Person.extend({ name : 'Robo', age : 4 )} var robot = new Robot(); alert(robot.name); //Should return 'Robo' 有人知道如何进行这项工作吗?我听说你需要写 Object.prototype.extend = function(...); 但是我不知道如何使该系统正常工作。如果不可能,请告诉我另一种扩展对象的方法。

8
为什么扩展本机对象是一种不好的做法?
每个JS意见领袖都说,扩展本机对象是一种不良做法。但为什么?我们会获得出色的表现吗?他们是否担心有人会以“错误的方式”这样做,并向中添加了可枚举的类型Object,实际上破坏了任何对象上的所有循环? 以TJ Holowaychuk的should.js为例。他向中添加了一个简单的吸气剂,Object并且一切正常(源代码)。 Object.defineProperty(Object.prototype, 'should', { set: function(){}, get: function(){ return new Assertion(Object(this).valueOf()); }, configurable: true }); 这真的很有意义。例如,可以扩展Array。 Array.defineProperty(Array.prototype, "remove", { set: function(){}, get: function(){ return removeArrayElement.bind(this); } }); var arr = [0, 1, 2, 3, 4]; arr.remove(3); 是否有反对扩展本机类型的论点?

7
Spring Java Config:如何创建带有运行时参数的原型作用域@Bean?
使用Spring的Java Config,我需要使用只能在运行时获得的构造函数参数来获取/实例化作用域原型的bean。考虑以下代码示例(为简便起见,对其进行了简化): @Autowired private ApplicationContext appCtx; public void onRequest(Request request) { //request is already validated String name = request.getParameter("name"); Thing thing = appCtx.getBean(Thing.class, name); //System.out.println(thing.getName()); //prints name } Thing类的定义如下: public class Thing { private final String name; @Autowired private SomeComponent someComponent; @Autowired private AnotherComponent anotherComponent; public Thing(String name) { this.name …

17
JavaScript中的多个继承/原型
我已经到了需要在JavaScript中进行一些基本的多重继承的地步。(我不是在这里讨论这是否是一个好主意,所以请您保留那些评论。) 我只想知道是否有人尝试过成功(或没有成功),以及他们是如何做到的。 归根结底,我真正需要的是能够拥有一个对象,该对象能够从多个原型链中继承属性(即,每个原型可以具有自己的适当链),但是要具有给定的优先顺序(它将搜索链以获取第一个定义)。 为了说明从理论上讲这是怎么可能的,可以通过将辅助链附加到主链的末端来实现,但这会影响那些以前的原型的所有实例,这不是我想要的。 有什么想法吗?

14
使用JavaScript原型的调用方法
如果重写了JavaScript中的原型方法,则可以调用基础方法吗? MyClass = function(name){ this.name = name; this.do = function() { //do somthing } }; MyClass.prototype.do = function() { if (this.name === 'something') { //do something new } else { //CALL BASE METHOD } };


4
为什么Perl 5的功能原型不好?
在另一个堆栈溢出问题中, Leon Timmermans断言: 我建议您不要使用原型。它们有其用途,但不适用于大多数情况,并且绝对不在此情况下使用。 为什么这可能是正确的(或相反)?我几乎总是为我的Perl函数提供原型,而且我从未见过有人对使用它们发表过不好的看法。
116 perl  function  prototype 

5
在AngularJS中更新父范围变量
我有两个控制器,一个封装在另一个中。现在,我知道子范围从父范围继承属性,但是有没有办法更新父范围变量?到目前为止,我还没有遇到任何明显的解决方案。 在我的情况下,我在表单中有一个日历控制器。我想从父范围(即表单)更新开始日期和结束日期,以便表单在提交时具有开始日期和结束日期。

5
Javascript何时使用原型
我想了解何时在js中使用原型方法。应该一直使用它们吗?还是在某些情况下不优选使用它们和/或导致性能下降? 在此站点上搜索js中命名空间的常用方法时,似乎大多数都使用了基于非原型的实现:简单地使用对象或函数对象来封装名称空间。 来自基于类的语言,很难不尝试画出相似之处,并认为原型就像“类”,而我提到的命名空间实现就像静态方法。

8
javascript forEach方法有什么用途(该地图无法做到)?
我在map和foreach中看到的唯一区别map是返回一个数组而forEach不是。但是,我什至不了解forEach方法“ func.call(scope, this[i], i, this);” 的最后一行。例如,不为“ this”和“ scope”,指的同一个对象,而不是this[i]和i参照在环路中的电流值? 我在另一篇文章中注意到有人说:“ forEach当您想根据列表的每个元素来做某事时使用。例如,您可能要在页面中添加内容。从本质上讲,当您想要“副作用”时,它非常有用。我不知道副作用是什么意思。 Array.prototype.map = function(fnc) { var a = new Array(this.length); for (var i = 0; i < this.length; i++) { a[i] = fnc(this[i]); } return a; } Array.prototype.forEach = function(func, scope) { scope = scope || this; for (var i = …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.