标签: dynamic-languages

JavaScript .prototype如何工作?

我不是那种动态编程语言,但是我写了很多JavaScript代码.我从来没有真正了解这个基于原型的编程,有没有人知道这是如何工作的?

var obj = new Object();
obj.prototype.test = function() { alert('Hello?'); };
var obj2 = new obj();
obj2.test();
Run Code Online (Sandbox Code Playgroud)

我记得很久以前我和人们进行了很多讨论(我不确定我在做什么)但是据我所知,没有一个类的概念.它只是一个对象,这些对象的实例是原始的克隆,对吧?

但是JavaScript中这个".prototype"属性的确切目的是什么?它与实例化对象有什么关系?

更新:正确的方式

var obj = new Object(); // not a functional object
obj.prototype.test = function() { alert('Hello?'); }; // this is wrong!

function MyObject() {} // a first class functional object
MyObject.prototype.test = function() { alert('OK'); } // OK
Run Code Online (Sandbox Code Playgroud)

这些幻灯片也非常有帮助.

javascript dynamic-languages prototype-oriented

1988
推荐指数
21
解决办法
49万
查看次数

范围规则的简短描述?

Python范围规则究竟是什么?

如果我有一些代码:

code1
class Foo:
   code2
   def spam.....
      code3
      for code4..:
       code5
       x()
Run Code Online (Sandbox Code Playgroud)

在哪里x找到?一些可能的选择包括以下列表:

  1. 在封闭的源文件中
  2. 在类命名空间中
  3. 在函数定义中
  4. 在for循环索引变量中
  5. 在for循环中

在执行期间,当函数spam在其他地方传递时,也存在上下文.也许lambda函数的传递方式有点不同?

某处必须有简单的参考或算法.对于中级Python程序员来说,这是一个令人困惑的世界.

python scope dynamic-languages

451
推荐指数
8
解决办法
24万
查看次数

动态类型语言与静态类型语言

与静态类型语言相比,动态类型语言的优点和局限是什么?

另请参阅:对动态语言的热爱(更具争议性的话题......)

type-systems programming-languages dynamic-languages

202
推荐指数
5
解决办法
12万
查看次数

使用-performSelector:与仅调用方法

我仍然是Objective-C的新手,我想知道以下两个语句之间有什么区别?

[object performSelector:@selector(doSomething)]; 

[object doSomething];
Run Code Online (Sandbox Code Playgroud)

dynamic-languages objective-c selector method-dispatch

114
推荐指数
3
解决办法
6万
查看次数

人们对动态语言有何吸引力?

似乎每个人最近都在跳跃着充满活力,没有编辑的潮流.我大多只使用编译的静态类型语言(C,Java,.Net).我对动态语言的体验是ASP(Vb Script),JavaScript和PHP.在考虑动态语言时,使用这些技术在我的嘴里留下了不好的味道.通常会被编译器捕获的事情(例如拼写错误的变量名称以及将错误类型的值分配给变量)直到运行时才会发生.即便如此,您可能也不会注意到错误,因为它只是创建一个新变量,并分配一些默认值.我也从未见过intellisense在动态语言中运行良好,因为变量没有任何明确的类型.

我想知道的是,人们对动态语言有何吸引力?动态语言允许您执行的操作无法完成或在编译语言中难以完成的主要优点是什么.在我看来,我们很久以前就决定,像未编译的asp页面抛出运行时异常这样的事情是个坏主意.为什么这类代码会重新出现?为什么至少在我看来,Ruby on Rails看起来并不像10年前你用ASP做过的任何东西?

dynamic-languages

81
推荐指数
16
解决办法
4万
查看次数

是什么让Ruby变慢?

Ruby在某些方面很慢.但它的哪些部分最成问题?

垃圾收集器对性能有多大影响?我知道有时候单独运行垃圾收集器需要几秒钟,特别是在使用OpenGL库时.

我使用Ruby的矩阵数学库特别慢.ruby如何实现基本数学有问题吗?

Ruby中是否有任何动态特性无法有效实现?如果是这样,Lua和Python等其他语言如何解决这些问题呢?

最近的工作是否已经显着提高了性能?

ruby performance garbage-collection dynamic-languages

57
推荐指数
5
解决办法
1万
查看次数

如何在Python中创建具有属性的内联对象?

在Javascript中它将是:

var newObject = { 'propertyName' : 'propertyValue' };
Run Code Online (Sandbox Code Playgroud)

怎么用Python做?

python dynamic-languages instantiation

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

为什么动态语言不需要IOC容器

第68号羊群编号播客中的某人,http://herdingcode.com/herding-code-68-new-year-shenanigans/,声称IOC容器没有Python或Javascript的地方,或者说是这样的话.我认为这是传统智慧,它适用于所有动态语言.为什么?动态语言是什么让IOC容器变得不必要?

dynamic-languages ioc-container

42
推荐指数
4
解决办法
8181
查看次数

用于自修改代码的编程语言?

  • 我最近在考虑编写自我修改程序,我认为它可能是强大而有趣的.所以我目前正在寻找一种允许轻松修改程序自己的代码的语言.
  • 我读到了C#(作为一种解决方法)以及在运行时编译和执行代码的能力,但这太伤人了.
  • 我也在考虑装配.更改运行代码更容易,但它不是很强大(非常原始).

您能否建议一种支持在运行时修改代码的强大语言或功能?

这就是我在运行时修改代码的意思:

  Start:
  a=10,b=20,c=0;
  label1: c=a+b;
  ....
  label1= c=a*b;
  goto label1;
Run Code Online (Sandbox Code Playgroud)

并且可能正在建立一份说明清单:

  code1.add(c=a+b);
  code1.add(c=c*(c-1));
  code1. execute();
Run Code Online (Sandbox Code Playgroud)

programming-languages dynamic-languages self-modifying

34
推荐指数
7
解决办法
2万
查看次数

什么是动态语言,为什么C#不符合条件?

听播客,我听说C#不是动态语言而Ruby是.

什么是"动态语言"?动态语言的存在是否意味着存在静态语言?

为什么C#是动态语言,其他语言是动态的?如果C#不是动态的,为什么微软将它强烈推向市场?

那么为什么大多数.NET程序员都对它疯狂并留下其他语言并转向C#?

为什么Ruby"是未来的语言"?

c# ruby dynamic-languages static-libraries

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