我不是那种动态编程语言,但是我写了很多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)
这些幻灯片也非常有帮助.
Python范围规则究竟是什么?
如果我有一些代码:
code1
class Foo:
code2
def spam.....
code3
for code4..:
code5
x()
Run Code Online (Sandbox Code Playgroud)
在哪里x找到?一些可能的选择包括以下列表:
在执行期间,当函数spam在其他地方传递时,也存在上下文.也许lambda函数的传递方式有点不同?
某处必须有简单的参考或算法.对于中级Python程序员来说,这是一个令人困惑的世界.
与静态类型语言相比,动态类型语言的优点和局限是什么?
另请参阅:对动态语言的热爱(更具争议性的话题......)
我仍然是Objective-C的新手,我想知道以下两个语句之间有什么区别?
[object performSelector:@selector(doSomething)];
[object doSomething];
Run Code Online (Sandbox Code Playgroud) 似乎每个人最近都在跳跃着充满活力,没有编辑的潮流.我大多只使用编译的静态类型语言(C,Java,.Net).我对动态语言的体验是ASP(Vb Script),JavaScript和PHP.在考虑动态语言时,使用这些技术在我的嘴里留下了不好的味道.通常会被编译器捕获的事情(例如拼写错误的变量名称以及将错误类型的值分配给变量)直到运行时才会发生.即便如此,您可能也不会注意到错误,因为它只是创建一个新变量,并分配一些默认值.我也从未见过intellisense在动态语言中运行良好,因为变量没有任何明确的类型.
我想知道的是,人们对动态语言有何吸引力?动态语言允许您执行的操作无法完成或在编译语言中难以完成的主要优点是什么.在我看来,我们很久以前就决定,像未编译的asp页面抛出运行时异常这样的事情是个坏主意.为什么这类代码会重新出现?为什么至少在我看来,Ruby on Rails看起来并不像10年前你用ASP做过的任何东西?
Ruby在某些方面很慢.但它的哪些部分最成问题?
垃圾收集器对性能有多大影响?我知道有时候单独运行垃圾收集器需要几秒钟,特别是在使用OpenGL库时.
我使用Ruby的矩阵数学库特别慢.ruby如何实现基本数学有问题吗?
Ruby中是否有任何动态特性无法有效实现?如果是这样,Lua和Python等其他语言如何解决这些问题呢?
最近的工作是否已经显着提高了性能?
在Javascript中它将是:
var newObject = { 'propertyName' : 'propertyValue' };
Run Code Online (Sandbox Code Playgroud)
怎么用Python做?
第68号羊群编号播客中的某人,http://herdingcode.com/herding-code-68-new-year-shenanigans/,声称IOC容器没有Python或Javascript的地方,或者说是这样的话.我认为这是传统智慧,它适用于所有动态语言.为什么?动态语言是什么让IOC容器变得不必要?
您能否建议一种支持在运行时修改代码的强大语言或功能?
这就是我在运行时修改代码的意思:
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) 听播客,我听说C#不是动态语言而Ruby是.
什么是"动态语言"?动态语言的存在是否意味着存在静态语言?
为什么C#是动态语言,其他语言是动态的?如果C#不是动态的,为什么微软将它强烈推向市场?
那么为什么大多数.NET程序员都对它疯狂并留下其他语言并转向C#?
为什么Ruby"是未来的语言"?
python ×2
ruby ×2
c# ×1
javascript ×1
objective-c ×1
performance ×1
scope ×1
selector ×1
type-systems ×1