小编Zea*_*rin的帖子

screenX/Y,clientX/Y和pageX/Y有什么区别?

screenX/ Y,clientX/ YpageX/有Y什么区别?

同样对于iPad Safari,计算与桌面上的计算类似 - 或者由于视口有一些差异?

如果你能指出我的例子,那就太棒了.

javascript safari ipad mouse-position

547
推荐指数
7
解决办法
19万
查看次数

ES6类可变替代品

目前在ES5中,我们很多人在框架中使用以下模式来创建类和类变量,这很舒服:

// ES 5
FrameWork.Class({

    variable: 'string',
    variable2: true,

    init: function(){

    },

    addItem: function(){

    }

});
Run Code Online (Sandbox Code Playgroud)

在ES6中,您可以本机创建类,但没有选项可以使用类变量:

// ES6
class MyClass {
    const MY_CONST = 'string'; // <-- this is not possible in ES6
    constructor(){
        this.MY_CONST;
    }
}
Run Code Online (Sandbox Code Playgroud)

遗憾的是,上面的代码不起作用,因为类只能包含方法.

我知道我可以this.myVar = trueconstructor...但我不想"垃圾"我的构造,特别是当我有一个更大的类20-30 +参数.

我正在考虑处理这个问题的许多方法,但还没有找到任何好的方法.(例如:创建一个ClassConfig处理程序,并传递一个parameter与该类分开声明的对象.然后处理程序将附加到该类.我正在考虑WeakMaps以某种方式集成.)

你有什么样的想法来处理这种情况?

javascript class ecmascript-6

477
推荐指数
10
解决办法
37万
查看次数

我应该在OSX上设置JAVA_HOME

许多使用shell脚本配置其环境的Java应用程序使用JAVA_HOME环境变量来启动正确版本的Java,找到JRE JAR等.

在OSX 10.6上,以下路径似乎对此变量有效

/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current
Run Code Online (Sandbox Code Playgroud)

其中一些是实际当前VM的符号链接(如"Java首选项"窗格中所定义).

但应该使用哪一个 - 或者可以使用其中任何一个?

java macos configuration

428
推荐指数
7
解决办法
26万
查看次数

Javascript对象与JSON

我想明白Javascript对象和JSON字符串之间的基本差异.

假设我创建了以下JS变量:

var testObject = {one: 1,"two":2,"three":3};
Run Code Online (Sandbox Code Playgroud)

Q1.键/属性名称是否有/无引号?(例如"one" : 1)

如果是,有什么区别?

Q2:如果我使用转换上述对象JSON.stringify(testObject),原始JS对象和JSON之间有什么区别?

我觉得他们差不多了.请详细说明.

问题3:对于解析JSON字符串,是推荐的方法吗?

var javascriptObj = JSON.parse(jSonString);
Run Code Online (Sandbox Code Playgroud)

javascript json

199
推荐指数
4
解决办法
9万
查看次数

你能控制SVG的笔画宽度是如何绘制的吗?

目前正在构建基于浏览器的SVG应用程序.在这个应用程序中,用户可以设置和定位各种形状,包括矩形.

当我将一个stroke-widthSVG rect元素应用于某个SVG 元素时1px,rect不同浏览器会以不同的方式将笔划应用于偏移和插入.这被证明是麻烦的,特别是当我尝试计算矩形的外部宽度和视觉位置并将其放置在其他元素旁边时.

例如:

  • Firefox增加1px插入(底部和左侧)和1px偏移(顶部和右侧)
  • Chrome增加了1px插页(顶部和左侧)和1px偏移(底部和右侧)

到目前为止,我唯一的解决方案是自己绘制实际边界(可能使用path工具)并将边框定位在描边元素后面.但是这个解决方案是一个令人不快的解决方案,如果可能的话,我宁愿不走这条路.

所以我的问题是,你能控制如何stroke-width在元素上绘制SVG 吗?

svg rect offset

188
推荐指数
6
解决办法
9万
查看次数

如何找到修改文件的最新git提交?

我想找到修改源文件的最新提交.

我可以git blame用来查看每行提交的所有日期,但是很难确切地知道哪个提交是最后一个提交文件.

如何在git存储库中找到触及给定文件的最后一次提交?

git search

163
推荐指数
4
解决办法
6万
查看次数

Cmake vs制作示例代码?

我想知道是否有任何示例代码MakefileS( make)和CMakeLists.txt(cmake),这两个做同样的事情(唯一的区别在于,一个是写在make和其他的cmake).

我试着寻找'cmake vs make',但我从来没有找到任何代码比较.理解这些差异真的很有帮助,即使只是为了一个简单的案例.

makefile cmake

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

JavaScript扩展类

我有一个基类:

function Monster() {
  this.health = 100;
}

Monster.prototype.growl = function() {
  console.log("Grr!");
}
Run Code Online (Sandbox Code Playgroud)

我想扩展并创建另一个类:

function Monkey extends Monster() {
  this.bananaCount = 5;
}

Monkey.prototype.eatBanana {
  this.bananaCount--;
  this.health++; //Accessing variable from parent class monster
  this.growl();  //Accessing function from parent class monster
}
Run Code Online (Sandbox Code Playgroud)

我做了很多研究,似乎有很多复杂的解决方案在JavaScript中这样做.在JS中实现这一目标的最简单,最可靠的方法是什么?

javascript oop inheritance object ecmascript-6

71
推荐指数
4
解决办法
9万
查看次数

require()来自JavaScript文件或REPL的CoffeeScript文件

我正在使用Node.js并希望将CoffeeScript合并到我的工作流程中.我有两个用例:

  1. 我希望能够编写哪些require()CoffeeScript模块的JavaScript文件
  2. 我希望能够从节点REPL中加载CoffeeScript模块

对于情况#1:我可以从编译.coffee.jsrequire().js模块,作为一种解决方法.

对于案例#2:现在我正在eval()输出coffee-script.compile().

有没有更好,更统一的方法来做到这一点?

javascript node.js coffeescript

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

在python中,在setup/teardown中使用上下文管理器是否有一个很好的习惯用法

我发现我在Python中使用了大量的上下文管理器.但是,我一直在测试使用它们的一些东西,我经常需要以下内容:

class MyTestCase(unittest.TestCase):
  def testFirstThing(self):
    with GetResource() as resource:
      u = UnderTest(resource)
      u.doStuff()
      self.assertEqual(u.getSomething(), 'a value')

  def testSecondThing(self):
    with GetResource() as resource:
      u = UnderTest(resource)
      u.doOtherStuff()
      self.assertEqual(u.getSomething(), 'a value')
Run Code Online (Sandbox Code Playgroud)

当这得到很多测试时,这显然会变得无聊,所以本着SPOT/DRY的精神(单点真相/不要重复自己),我想将这些位重构为测试setUp()tearDown()方法.

然而,试图这样做会导致这种丑陋:

  def setUp(self):
    self._resource = GetSlot()
    self._resource.__enter__()

  def tearDown(self):
    self._resource.__exit__(None, None, None)
Run Code Online (Sandbox Code Playgroud)

必须有更好的方法来做到这一点.理想情况下,在每个测试方法的setUp()/ tearDown()不重复位中(我可以看到如何重复每个方法上的装饰器可以做到这一点).

编辑:将底层对象视为内部GetResource对象,将对象视为第三方对象(我们不会更改).

我已经重命名GetSlotGetResourcehere-这比特定情况更通用 - 其中上下文管理器是对象打算进入锁定状态的方式.

python unit-testing contextmanager

47
推荐指数
5
解决办法
8982
查看次数