相关疑难解决方法(0)

JavaScript中的'new'关键字是什么?

newJavaScript中的关键字在第一次遇到时会非常混乱,因为人们倾向于认为JavaScript不是面向对象的编程语言.

  • 它是什么?
  • 它解决了什么问题?
  • 什么时候适当,什么时候不适合?

javascript new-operator

1684
推荐指数
12
解决办法
25万
查看次数

Javascript原型操作员性能:节省内存,但速度更快吗?

在这里阅读(Douglas Crockford)使用原型运算符向Javascript类添加方法也保存了内存.

然后我读到了John Resig的文章 "用一堆原型属性实例化一个函数是非常非常快的 ",但他是在谈论以标准方式使用原型,还是他在他的文章中谈论他的具体例子?

例如,正在创建此对象:

function Class1()
{
   this.showMsg = function(string) { alert(string); }
}
var c = new Class1();
c.showMsg();
Run Code Online (Sandbox Code Playgroud)

创建这个对象吗?

function Class1() {}
Class1.prototype.showMsg = function(string) { alert(string); }
var c = new Class1();
c.showMsg();
Run Code Online (Sandbox Code Playgroud)

PS

我知道原型用于创建继承和单例对象等.但是这个问题与这些主题没有任何关系.


编辑:对于JS对象和JS静态对象之间的性能比较它可能感兴趣的人可以阅读下面的答案.静态对象肯定更快,显然只有在不需要多个对象实例时才能使用它们.

javascript performance function-prototypes

48
推荐指数
3
解决办法
2万
查看次数

这是'子类化'javascript数组的合理方法吗?

我知道,严格来说,这不是数组类型的子类,但是这会以人们可能期望的方式工作,还是我还会遇到.length之类的问题?如果正常的子类化是一个选项,我有没有任何缺点?

        function Vector()
        {
            var vector = [];
            vector.sum = function()
            {
                sum = 0.0;
                for(i = 0; i < this.length; i++)
                {
                    sum += this[i];
                }
                return sum;
            }            
            return vector;
        }

        v = Vector();
        v.push(1); v.push(2);
        console.log(v.sum());
Run Code Online (Sandbox Code Playgroud)

javascript arrays subclass

10
推荐指数
2
解决办法
5675
查看次数

Javascript中的Java面向对象概念

我已经使用Java很长一段时间了,很长一段时间我一直在使用GWT(Google Web Toolkit)进行Web开发.它的美妙之处在于我拥有了面向Java对象的构造,并且不会担心它如何被转换为GWT - 让Google来处理它.我对Javascript的了解已经足够,但并不是因为我可以用它进行大量的Web开发.后来我决定我必须对Javascript有更深入和更彻底的了解,这是一个真正的过山车 - 只是在我认为我得到了一些东西,有些东西来证明我错了 - 我只是被误解了.

有什么比stackoverflow更能表达我的关注的地方:我正在寻找一些资源和指向什么是Javascript等同于以下一些Java概念:

Class
instance of a class - object
Member variables
Getters
Setters
Abstract Class
Interface
Inheritance
Access Modifiers
Constructors
Run Code Online (Sandbox Code Playgroud)

我知道其中一些概念,但正如我所说 - 我相信我有一些概念上的困难.如果有人可以指出一个真正的javascript大师试图在这里查明这些概念,我将非常高兴.

javascript java gwt

9
推荐指数
3
解决办法
1925
查看次数

Yegge的原型模型示例如何处理实例变量?

我喜欢Steve Yegge的原型模型示例,并决定掀起一个快速的概念验证示例.

但是,我并没有真正想到的事情.虽然它非常适合动态指定对象的行为,并且是Steve的自以为是的精灵示例的简单解决方案,但我仍然在努力找出处理实例变量的最佳方法.

例如,假设我有一个AwesomeDragon对象.然后我想创建一个AwesomeDragonImmuneToFire对象,这样我就可以创建一个AwesomeDragon(AwesomeDragonImmuneToFire从AwesomeDragon继承属性)的新子节点,并将"ImmuneToFire"作为属性值为'true'.到现在为止还挺好.现在让我们说我想在参观附近的农村村庄时发送我的AwesomeDragon对象.这将涉及更新AwesomeDragon的"位置"属性.然而,在我这样做的那一刻,AwesomeDragonImmuneToFire也会起飞.

是否是在创建对象时覆盖实例值的最佳解决方案,例如立即将'AwesomeDragonImmuneToFire'的'position'值'置'到'position'的当前'get'值?

language-agnostic design-patterns prototype

6
推荐指数
1
解决办法
1036
查看次数