小编Fel*_*ing的帖子

(ES6)类(ES2017)async/await getter

是否可以让ES6类getter从ES2017 await/async函数返回一个值.

class Foo {
    async get bar() {
        var result = await someAsyncOperation();

        return result;
    }
}

function someAsyncOperation() {
    return new Promise(function(resolve) {
        setTimeout(function() {
            resolve('baz');
        }, 1000);
    });
}

var foo = new Foo();

foo.bar.should.equal('baz');
Run Code Online (Sandbox Code Playgroud)

async-await ecmascript-6 ecmascript-2017

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

使用`Object.create`进行继承的好处

我一直试图围绕Object.createECMAScript 5中引入的新方法.

通常,当我想使用继承时,我会这样做:

var Animal = function(name) { this.name = name; }
Animal.prototype.print = function() { console.log(this.name); }

var Dog = function() 
{ 
  return Animal.call(this, 'Dog'); 
}

Dog.prototype = new Animal();
Dog.prototype.bark = function() { console.log('bark'); }
Run Code Online (Sandbox Code Playgroud)

我只是将一个新创建的Animal对象分配给Dog的原型,一切都像魅力:

var dog1 = new Dog();
dog1.print(); // prints 'Dog'
dog1.bark(); // prints 'bark'
dog1.name; //prints 'Dog'
Run Code Online (Sandbox Code Playgroud)

但人们(没有解释)说这Dog.prototype = new Animal();不是继承的工作方式,我应该使用Object.create方法:

Dog.prototype = Object.create(Animal.prototype);
Run Code Online (Sandbox Code Playgroud)

这也有效.

使用的好处是什么,Object.create或者我错过了什么?

更新:有人说这Dog.prototype = Animal.prototype;也可以.所以现在我完全糊涂了

javascript

52
推荐指数
4
解决办法
4779
查看次数

如何通过jQuery获取没有特定属性的元素

我知道如何获取具有特定属性的元素:

$("#para [attr_all]")
Run Code Online (Sandbox Code Playgroud)

但是如何才能获得没有特定属性的元素?我试试

 $("#para :not([attr_all])")
Run Code Online (Sandbox Code Playgroud)

但它不起作用.这样做的正确方法是什么?

让我举个例子:

<div id="para">
    <input name="fname" optional="1">
    <input name="lname">
    <input name="email">
</div>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$("#para [optional]") // give me the fname element  
$("#para :not([optional])") //give me the fname, lname, email (fname should not appear here)  
Run Code Online (Sandbox Code Playgroud)

jquery

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

由动态生成的元素触发的事件不会被事件处理程序捕获

我有一个<div>使用id="modal"jQuery load()方法动态生成的:

$('#modal').load('handlers/word.edit.php');
Run Code Online (Sandbox Code Playgroud)

word.edit.php包含一些输入元素,它们被加载到一个模态中<div>.

使用jQuery的keyup方法我可以在事件触发后捕获输入值,但是当元素被动态添加到模态div时,当用户输入文本时,事件不会激活.

哪个jQuery方法支持处理由动态创建的元素触发的事件?

用于创建新输入元素的代码是:

$('#add').click(function() {
    $('<input id="'+i+'" type="text" name="translations' + i + '"  />')
      .appendTo('#modal');
Run Code Online (Sandbox Code Playgroud)

捕获用户值的代码是:

$('input').keyup(function() {
    handler = $(this).val();
    name = $(this).attr('name');
Run Code Online (Sandbox Code Playgroud)

第二个代码块似乎适用于原始元素,但新动态生成的元素不会触发它.

javascript jquery

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

在React Native中使用async/await时出错

当试图在react-native中使用async/await时,我收到以下错误:

    uncaught error Error: SyntaxError: /Users/senthilsivanath/Documents/MusicTulip/index.ios.js: Unexpected token (50:23)
  48 |   renderScene: function(route,nav) {
  49 |     try {
  50 |          const response = await signIn.isLoggedIn();
Run Code Online (Sandbox Code Playgroud)

我的.babelrc档案是:

{ "presets": ["react-native", "es2015", "babel-preset-stage-3"] }
Run Code Online (Sandbox Code Playgroud)

javascript babeljs react-native ecmascript-next

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

从字符串中删除字符

我可以在JavaScript中从字符串中删除字符的不同方法有哪些?

javascript string

49
推荐指数
4
解决办法
10万
查看次数

一行检查另一个列表中是否存在列表中至少有一个项目?

让我说我有一个列表 a=[1,2,3] 我想知道其中至少有一个数字是否存在于另一个列表中,如下所示: b=[4,5,6,7,8,1] 换句话说,我想知道列表中是否存在1,2或3 b.我现在可以做点什么了

def func(a, b):
    for i in a:
       if i in b:
          return True
    return False
Run Code Online (Sandbox Code Playgroud)

但有可能有办法把它放在一条线上以使事情变得整洁吗?

python

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

ES6中的箭头功能中"this"指的是什么?

我在几个地方读过,关键的区别是" this在箭头函数中是词法绑定的".这一切都很好,但我实际上并不知道这意味着什么.

我知道这意味着它在定义函数体的大括号范围内是独一无二的,但我实际上无法告诉你以下代码的输出,因为我不知道所指的this是什么,除非它指的是胖箭头函数本身....这似乎没用.

var testFunction = () => { console.log(this) };
testFunction();
Run Code Online (Sandbox Code Playgroud)

javascript this ecmascript-6 arrow-functions

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

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

如何取消绑定特定的事件处理程序

码:

$('#Inputfield').keyup(function(e)
        {
            if(e.which == 13)
            {
                functionXyz();
            }
            else
            {
                functionZyx();
            }
    });  


$(document).keyup(function(exit) {
              if (exit.keyCode == 27) { functionZzy(); }
});
Run Code Online (Sandbox Code Playgroud)

问题:如何删除keyCode == 27的keyup事件处理程序并保持其他$(document).keyup事件处理程序完好无损?

javascript jquery events event-handling unbind

45
推荐指数
4
解决办法
5万
查看次数