相关疑难解决方法(0)

这个JavaScript成语的基础是:var self = this?

我在WebKit HTML 5 SQL存储笔记演示的源代码中看到以下内容:

function Note() {
  var self = this;

  var note = document.createElement('div');
  note.className = 'note';
  note.addEventListener('mousedown', function(e) { return self.onMouseDown(e) }, false);
  note.addEventListener('click', function() { return self.onNoteClick() }, false);
  this.note = note;
  // ...
}
Run Code Online (Sandbox Code Playgroud)

笔者采用自我在一些地方(函数体)及在其他地方(的函数方法的参数列表中定义的机构).这是怎么回事?现在我已经注意到了它,我会在各处开始看到它吗?

javascript closures scope

353
推荐指数
8
解决办法
15万
查看次数

什么'var that = this;' 用JavaScript表示?

在JavaScript文件中,我看到:

function Somefunction(){
   var that = this; 
   ... 
}
Run Code Online (Sandbox Code Playgroud)

声明that和分配给它的目的是什么this

javascript this

346
推荐指数
4
解决办法
11万
查看次数

在knockout.js视图模型中使用`var self = this`有什么好处

我在几乎所有的knockout.js视图模型中看到了这一行var self = this,然后所有局部变量都被引用为self.variableName.这比使用有this.variableName什么好处?

javascript knockout.js

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

javascript中的self和this之间的区别以及何时使用它们中的任何一个

可能重复:
这个JavaScript习语的基础是:var self = this?

我很困惑,什么时候使用自我和这在JavaScript中.
我知道是指当前的上下文,而self指的是当前窗口.
当我在Titanium中开发应用程序时.我想知道何时使用自我或者这个 或者确实在钛开发中有任何自我概念.

这是我在钛commonJS模块中执行的示例代码

var auth = require('/SDKTest/auth');
var nodeAPI = require('/SDKTest/nodeAPI');
function myAPI() {
     this.auth = auth;
     this.nodeAPI = nodeAPI;
     return this;
    }
module.exports = myAPI;
Run Code Online (Sandbox Code Playgroud)

此代码的工作,但我可以用自己代替这个?而不是使用这个,我可以创建一个命名空间,并做这样的事情:

  function myAPI() {
     var api = {};
     api.auth = auth;
     api.nodeAPI = nodeAPI;
     return api;
    }
Run Code Online (Sandbox Code Playgroud)

这两种方法都有效,但在这里使用的用途是什么

javascript titanium

11
推荐指数
2
解决办法
5729
查看次数

在knockout.js中,为什么"这个"被分配给"自我"?

我正在通过Knockoutjs教程.有一件事对我来说似乎很奇怪.我目前在第2部分:

http://learn.knockoutjs.com/#/?tutorial=collections

在每一个"阶级"的这一部分中,"这个"被分配给"自我"......在第一个案例中并非如此?

为什么有人会这样做?只是谁写了特定的代码有python成瘾,或者是否有一些实际的好处呢?

knockout.js

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

"var self = this"方法背后的理由是什么?

可能重复:
JS:var self = this?

在查看用JavaScript编写的任意代码时(例如在GitHub上),许多开发人员使用var self = this然后使用self而不是this引用当前对象.

这种方法背后的理由是什么?

javascript

6
推荐指数
2
解决办法
595
查看次数

我应该使用self或window来引用全局范围吗?

作为一种样式约定,我喜欢在我访问全局范围中的变量时明确,更喜欢

window.example = "Hello";
window.alert(window.example);
Run Code Online (Sandbox Code Playgroud)

更不那么冗长

example = "Hello";
alert(example);
Run Code Online (Sandbox Code Playgroud)

我现在有一个可以直接从浏览器使用的模块,或者,如果它们可用,则来自Web工作者.在Web worker中调用全局对象self,而在浏览器中调用它window.

window对象具有自我属性,因此self.example = "Hello"可以在两个上下文中工作,只要没有一个重新声明self(因为它们经常这样做:var self = this).

什么是最好的约定?

  • 使用self并希望没有人宣称存在冲突self.
  • 如果window已定义,请使用window,否则使用self.
  • 别的什么?

想到这一点,我倾向于选择第二个.

javascript coding-style web-worker

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

如何在jquery回调函数中访问reactjs组件状态

如何从jQuery"changeDate"事件(jqueryUI date)回调函数访问反应组件状态.

var subheader = React.createClass({

    getInitialState: function () {
        return {
            msg: this.props.msg
        };
    },

    componentDidMount: function () {
        $('#date').datepicker({
            format: "dd/mm/yyyy"
        }).on("changeDate", function (e) {
            console.log(this.state.msg);
        });

    },
    render: function () {
        return (
                    // render HTML here.

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

但得到this.state是未定义的.请任何人帮助我.

jquery reactjs

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

这和那之间有什么区别

我想知道并理解这个和那个之间的不同,以及当我必须使用它时.我准备了许多帖子和许多教程,但我还不明白

这是我的班级

function Container(param) {

    function dec() {
        if (secret > 0) {
            secret -= 1;
            return true;
        } else {
            return false;
        }
    }

    this.member = param;
    var secret = 3;
    var that = this;

    this.service = function () {
        console.log(this.member); // foo
        console.log(that.member); // foo
        return dec() ? that.member : null;
    };
}
Run Code Online (Sandbox Code Playgroud)

var myContainer = new Container('foo');
myContainer.service()
Run Code Online (Sandbox Code Playgroud)

调用myContainer.service()将在前三次调用时返回'abc'.之后,它将返回null

为什么我要做var that = this

javascript

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

Javascript关闭技术

  1. 我有一个创建幻灯片的对象.
  2. 我想在页面上有几个幻灯片
  3. 我有一个幻灯片元素的事件处理程序
  4. 我希望事件处理程序知道哪个幻灯片对象创建了一个单击的项目

-

slideshow=function(){

   var g = document.createElement(...);

   ...

   g.onclick = f1;

   f1 = function(slideshow_instance, event) {
      //EXPLAIN ME HOW TO GET THE slideshow_instance
   }

}

var sl1 = new slideshow();
var sl2 = new slideshow();
Run Code Online (Sandbox Code Playgroud)

单击已创建的元素幻灯片应该返回

SL1

要么

SL2

我解释得好吗?

javascript

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