小编noo*_*eed的帖子

你会在Javascript中实现一个链表吗?

我是第一次正式学习数据结构.对我来说,传统上描述链接列表的一些好处(更容易的内存分配以及更快的输入和删除到列表的主体)在js中似乎没有给定数组的工作方式(比如带有数字键的对象).

任何人都可以举例说明我为什么要在javascript中使用链接列表?

javascript

41
推荐指数
3
解决办法
7360
查看次数

当你传递'this'作为参数时

我正在努力学习this,这让我有点困惑:

var randomFunction = function(callback) {
    var data = 10;
    callback(data);
};

var obj = {
    initialData:  20,
    sumData: function(data) {
        var sum = this.initialData + data;
        console.log(sum);
    },
    prepareRandomFunction: function() {
        randomFunction(this.sumData.bind(this));
    }
};

obj.prepareRandomFunction();
Run Code Online (Sandbox Code Playgroud)

是否this设计为自己设置在代码中首次呈现的位置?例如,在我的例子中,我成功地使用它来引用obj并绑定函数obj,但是因为this它被作为回调函数传递,所以阻止它被设置randomFunction为什么(即什么阻止它从字面上传递"这个.sumData.bind(this)"这样this设置为randomFunction从那里调用时?"

我是一个努力学习的菜鸟.谢谢.

更新 我并不是一般都在询问它是如何工作的(我不认为).我很想知道为什么this在我将其定义为我的randomFunction调用的参数的地方设置,而不是在其中callback调用的地方randomFunction.我可能是错的,但如果我要换掉我现在this.sumData.bind(this)callback(data)那个,我想我会得到不同的结果.是不是因为callback是一个参考this.sumData.bind(this),当它被首先定义(何thisobj)?


我想我已经通过这个场景了解了this它在执行时设置的情况.它不会作为参数传递,以便稍后在该行调用参数时进行设置.

javascript bind this

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

使用JSON创建对象的实例

我正在努力学习编程.我已经浏览了一个在线教程网站列表,我认为这对我来说非常重要.

我的问题:

  1. (这是我最想了解的)在我的for ... in循环中,为什​​么使用"Contacts"构造函数创建新的"obj"对象?似乎每次循环时我都需要一个不同的名称,这样我就不会覆盖我之前创建过传递的对象.如果这是正确的,如果我对提前联系的数量或价值一无所知,我该怎么做呢?另外,为什么控制台日志中的任何对象的标题都没有说obj?我是否对创建对象实例意味着什么感到困惑?这些实例的名称是不重要的吗?

  2. 为什么所有属性都未定义?应该引用临时"i"变量的属性吗?

从未知的总数据条目创建对象似乎非常重要.不幸的是,像Codecademy这样的地方在这里不足.您始终使用他们为您提供的硬编码名称手动创建对象的新实例.但如果有两个相同的名字,会发生什么?

非常感谢您对此的任何帮助.不要拒绝告诉我其他任何愚蠢的事情.

以下是控制台屏幕截图的链接 - http://i.imgur.com/TK4dtfV.png

var TestApp = {};

// my data... taken from wherever
TestApp.jsonContacts = {
    contact1: {
        name: "Ethan",
        age: 24
    },
    contact2: {
        name: "Evan",
        age: 30
    },
    contact3: {
        name: "Paul",
        age: 9000
    }
};

// I know this is silly, just let me pretend...
TestApp.jsonStrung = JSON.stringify(TestApp.jsonContacts);

TestApp.globalContactList = [];

// my constructor function to create instances of Contact
TestApp.Contact = function(name, age){
    this.name = name;
    this.age …
Run Code Online (Sandbox Code Playgroud)

javascript json object new-operator addressbook

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

(Function instanceof Function)和(Function instanceofObject)都为真吗?

等待!我知道还有其他非常相似的问题,但是(也许是我)我需要回答其中的特定部分。

我知道可以说Object.prototype在委托链的最顶端。但是,在功能存在以使它成为实例之前,对象(作为函数对象)如何可以在其上具有原型方法呢?我是否应该想象一下同时创建两个伏都教的地方?

这两个Object instanceof FunctionFunction instanceof Object是真实的

好像是鸡肉和鸡蛋。

javascript prototype

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

如何使用ES6语法访问导入属性

可以var merge = require('lodash').merge用ES6 做点什么吗?

希望有类似的东西import {lodash.merge as merge} from 'lodash'.

javascript ecmascript-6 es6-module-loader

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

在未定义的变量上操作 - 空合并

function add(num) { 
  var sum;
  for (var i = 1; i < num + 1; i++){
    sum = (sum || 0) + i;
  }; 
  return sum;     
}
add(9);
Run Code Online (Sandbox Code Playgroud)

什么是关键字来描述在for循环中添加到"i"时定义sum的行为?这是三元手术吗?显然第一次循环它是未定义的,所以javascript选择0.为什么?

javascript undefined null-coalescing

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