小编Sam*_*Lee的帖子

Javascript继承 - 构造函数中声明的对象是在实例之间共享的吗?

我在没有Prototype/jQuery的JavaScript中进行面向对象编程(我将jQuery用于其他东西).到目前为止,它一直运行良好,但我遇到了继承问题.基本上,当我在构造函数中声明对象时,它们在实例之间共享.以下是一些示例代码:

    A = function()
    {
        this.y = new Array();
    }

    A.prototype.doStuff = function(n)
    {
        this.y.push(n);
    }

    B = function()
    {
    }

    B.prototype = new A();

    var b1 = new B();
    var b2 = new B();

    b1.doStuff(100);
    b2.doStuff(200);

    console.log("b1:");
    console.log(b1);
    console.log("b2:");
    console.log(b2);
Run Code Online (Sandbox Code Playgroud)

此输出的阵列[100, 200]两者b1b2.我想要的是b1b2拥有自己的,独立的阵列来y.我该怎么做?

(PS.我认为Prototype的类系统内置了一些内容.但我宁愿不重写一堆我的代码来使用该类系统)

javascript inheritance

8
推荐指数
1
解决办法
783
查看次数

如何判断我是否在Objective-C中的Y循环中的for X的最后一次迭代

我有一个循环使用for(在someArray中的NSObject*obj){}语法.是否有一种简单的方法可以判断我是否在循环的最后一次迭代中(即不必使用[someArray count])

objective-c

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

不赞成提升精神标题

我正在关注boost :: spirit的快速入门指南,当我包含时,我收到此编译器警告:"此标头已弃用.请使用:boost/spirit/include/classic_core.hpp"我应该担心这个吗?

(快速入门指南:http://spirit.sourceforge.net/distrib/spirit_1_8_5/libs/spirit/doc/quick_start.html,与节目我试图编译这里的全部源:HTTP://spirit.sourceforge. net/distrib/spirit_1_8_5/libs/spirit/example/fundamental/number_list.cpp)

编辑:此外,当我尝试使用推荐的classic_core.hpp和classic_push_back_actor.hpp标头编译时,我得到以下编译器错误:

test7.cpp: In function 'bool parse_numbers(const char*, __gnu_debug_def::vector<double, std::allocator<double> >&)':
test7.cpp:18: error: 'real_p' was not declared in this scope
test7.cpp:18: error: 'push_back_a' was not declared in this scope
test7.cpp:23: error: 'space_p' was not declared in this scope
test7.cpp:23: error: 'parse' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-spirit

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

如何为jQuery回调绑定"this"?

我试图在jQuery中设置一个回调,正确地将"this"绑定到调用对象.具体来说,这是我正在使用的代码.我在这样的对象中进行ajax调用:

Object.prototype.doAjaxCall = function(url)
    {
        $.get(url, null, this.handleAjaxResponse );
    }
Run Code Online (Sandbox Code Playgroud)

但是,在Object.prototype.doAjaxCall,this并没有提到正确的事情.我之前使用过Prototype,我知道你需要在执行Ajax调用时绑定它,但我似乎无法在jQuery中找到正确的方法.有人能指出我正确的方向吗?

ajax jquery

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

如何使用ANTLR生成的语法文件?

我认为这是一个愚蠢的问题,但我刚刚开始使用ANTLR.我将他们的教程中的"SimpleCalc"语法放在一起,并用C作为目标语言生成它.我得到SimpleCalcParser.c/.h和SimpleCalcLexer.c/.h作为输出,我能够编译这些并成功构建.但是现在,我如何实际使用生成的代码?我很难找到有用的文档中的任何内容.

下面是我的main()函数.这也来自教程.

 #include "SimpleCalcLexer.h"

 int main(int argc, char * argv[])
 {

    pANTLR3_INPUT_STREAM           input;
    pSimpleCalcLexer               lex;
    pANTLR3_COMMON_TOKEN_STREAM    tokens;
    pSimpleCalcParser              parser;

    input  = antlr3AsciiFileStreamNew          ((pANTLR3_UINT8)argv[1]);
    lex    = SimpleCalcLexerNew                (input);
    tokens = antlr3CommonTokenStreamSourceNew  (ANTLR3_SIZE_HINT, TOKENSOURCE(lex));
    parser = SimpleCalcParserNew               (tokens);

    parser  ->expr(parser);

    // Must manually clean up
    //
    parser ->free(parser);
    tokens ->free(tokens);
    lex    ->free(lex);
    input  ->close(input);

    return 0;
 }
Run Code Online (Sandbox Code Playgroud)

编辑:根据第一个响应,我应该说我运行这样的程序:"./ testantlr test.txt",其中test.txt包含"4 + 1".没有输出.

从这里开始,我将如何访问生成的语法树中的"4",或打印出整个语法树?基本上,我如何访问ANTLR生成的语法树中的东西?

c antlr

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

在没有插件的情况下调用Template Toolkit中的子外部和模块?

我试图在Template Toolkit .tt文件中调用外部Perl模块.我想要使​​用的模块是Util,我想打电话Util::prettify_date.我能够使用Template Toolkit的插件接口包含这个模块:我设置了load,new和error函数(如下所述:http://template-toolkit.org/docs/modules/Template/Plugin.html),并使用它包括它[% USE Util %].

这工作正常,但我想知道是否有一种方法可以USE在Template Toolkit中使用Perl模块而无需插件 - 如果它们.制作插件的主要问题是我必须使用Util面向对象的所有函数(即接受$ self作为第一个参数),这实际上没有意义.

perl template-toolkit

5
推荐指数
2
解决办法
2265
查看次数

将WPF移植到Cocoa(和/或反之亦然)

我正处于为mISV创建软件的初期阶段.该程序是一个桌面应用程序,从长远来看,我想拥有Windows和OS X的本机版本(我查看了各种跨平台的API,但没有一个满足我的需求).但最初,我认为一次开发两个平台并不合理.考虑到这一点,我一直在寻找Windows的WPF和OS X的Cocoa,它们看起来很相似.

有没有人有经验将一个移植到另一个?是否有特定的技术/范例可以使移植更容易?忽略业务考虑因素,您会建议先在其中一个上进行开发吗?

wpf cocoa porting

4
推荐指数
2
解决办法
2723
查看次数

如何通过单击按钮在Cocoa中打开启动NSWindow

我有一个我在界面构建器中定义的NSWindow.我希望这样做,以便当用户单击按钮时,它会打开NSWindow的新实例.我必须继承NSWindow或其他东西吗?

cocoa

4
推荐指数
1
解决办法
2万
查看次数

Apache日志-%a和%h有什么区别?

%a是“远程IP地址”,%h是“远程主机”,但是当我对其进行测试时,它们都打印出相同的IP地址。有什么不同?

日志格式“%a%h的示例日志输出:

192.168.1.2 192.168.1.2
192.168.1.2 192.168.1.2
192.168.1.2 192.168.1.2
Run Code Online (Sandbox Code Playgroud)

apache

4
推荐指数
1
解决办法
2617
查看次数

如何在Perl的Template Toolkit中仅渲染特定的"BLOCK"?

如何仅BLOCK在模板中呈现特定内容?

假设我有这样BLOCKtext.tt,一个模板工具包文件:

[% BLOCK someblock %] some block test blah blah blah [% END %]
Run Code Online (Sandbox Code Playgroud)

我希望能够process()用来处理那部分:

$tt->process("text.tt/someblock", {...}, {...});
Run Code Online (Sandbox Code Playgroud)

这是处理这个问题的正确方法吗?

perl template-toolkit

4
推荐指数
1
解决办法
396
查看次数

Apache可以处理多少个连接/多少带宽?

这是一个指向好文档/好文章的请求.我正在寻找有关Apache服务器可以合理处理多少连接的信息,以及可能如何在多个服务器之间进行负载平衡的信息.我已经完成了谷歌搜索,但初学者更难判断什么是优秀的文档.

apache performance webserver

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

mmap big endian vs. little endian

如果我mmap用来编写uint32_t,我会遇到大端/小端约定的问题吗?特别是,如果我mmap在大端机器上编写一些数据,当我尝试在小端机器上读取数据时会遇到问题吗?

mmap endianness

2
推荐指数
1
解决办法
1675
查看次数

outlineView:dataCellForTableColumn:item:有奇怪的副作用

我有一个大纲视图委托,并覆盖outlineView:dataCellForTableColumn:item:使我的大纲视图中的单元格成为按钮(请参阅此问题).这是我的代表的代码形式:

- (NSCell *)outlineView:(NSOutlineView *)outlineView dataCellForTableColumn:(NSTableColumn *)tableColumn item:(id)item;
{
    MyCell * myCell = [[MyCell alloc] init];
//  return nil;
    return myCell;
}
Run Code Online (Sandbox Code Playgroud)

这样做有一个奇怪的副作用.在我的大纲视图的数据源中,方法outlineView:objectValueForTableColumn:byItem:始终为tableColumn获取空值.

代码是:

- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item
{
    printf("tableColumn:%s\ttable identifier: %s\n", [[tableColumn className] cString], [[tableColumn identifier] cString]);
    return [item valueForKey:[tableColumn identifier]];
}
Run Code Online (Sandbox Code Playgroud)

输出是:

tableColumn:(null)  table identifier: (null)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,只有在我实现outlineView:dataCellForTableColumn:item:方法时才会发生这种情况.我在这里错过了什么?

编辑:

像这样修改委托函数似乎可以解决问题:

- (NSCell *)outlineView:(NSOutlineView *)outlineView dataCellForTableColumn:(NSTableColumn *)tableColumn item:(id)item;
{
    printf("delegate column identifier: %s\n", [[tableColumn identifier] cStringUsingEncoding:NSASCIIStringEncoding]);
    if (tableColumn == nil)
    {
        return nil;
    }
    MyCell * …
Run Code Online (Sandbox Code Playgroud)

cocoa

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