当前位置: 首页 > 面试题库 >

JavaScript惯用语的基础是什么:var self = this?

齐航
2023-03-14
问题内容

我在WebKit HTML 5 SQL Storage NotesDemo的源代码中看到以下内容:

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;
  // ...
}

问题答案:

self``this即使上下文在变化,也用于维护对原始文档的引用。这是事件处理程序中经常使用的一种技术(尤其是在闭包中)。

编辑: 请注意,self现在不鼓励使用,window.self如果您不小心的话,有可能导致错误。

您所说的变量并不重要。var that = this;很好,但是名称没有任何魔术。

在上下文中声明的函数(例如,回调,闭包)将有权访问在相同范围或更高范围中声明的变量/函数。

例如,一个简单的事件回调:

function MyConstructor(options) {

  let that = this;



  this.someprop = options.someprop || 'defaultprop';



  document.addEventListener('click', (event) => {

    alert(that.someprop);

  });

}



new MyConstructor({

  someprop: "Hello World"

});


 类似资料:
  • JavaScript语法 要学习JavaScript知识,就要先学习它的语法。 JavaScript语法知识借鉴了C语言以及类似于C语言(如Java)的编程语言的语法知识。 区分大小写 与其它编程语言类似的一样,JavaScript也区分大小写,如:变量test与TEST代表两种不同的变量,在JavaScript中常量、固定值量(如PI)、全局变量用大写表示外,其它建议均用小写表示。 <!doct

  • 问题内容: 是添加到列表末尾的明显选择。这是有关失踪人员的合理解释。假设我的清单很短并且对性能的关注可以忽略不计, 要么 惯用的? 问题答案: 该形式是最常见的。 无论何时,只要您看到它,也许就该考虑使用collections.deque而不是列表了。

  • 一个测试 Object.assign() 的例子。执行顺序感觉应该是obj.status = item.status?'通过':'未通过' 在 Object.assign(obj,item) 前面才对,实际显然不对。为什么是先合并后改变状态?

  • 本文向大家介绍Javascript基础教程之JavaScript语法,包括了Javascript基础教程之JavaScript语法的使用技巧和注意事项,需要的朋友参考一下 1.区分大小写 javascript中,变量、函数、运算符都区分大小写。 2.弱类型变量 定义变量只用 "var"关键字 3.每行结尾的分号可有可无。 4.括号用于代码块。 代码示例 第一篇文章就先这些吧,后续我们再详细介绍

  • 问题内容: 我知道这被认为是不良做法;并且,我希望整理出一份为什么要向第三方供应商提交的原因清单,说明为什么他们不应该在其分析代码的实现中使用它们。 请在下面说明您提出不良做法的理由。 问题答案: 一些较严重的问题: document.write(此后称为DW)在XHTML中不起作用 DW不会直接修改DOM,从而阻止了进一步的操作 (试图寻找证据,但充其量只是视情况而定) 页面加载完成后执行的DW

  • 本文向大家介绍什么是惯例配置?相关面试题,主要包含被问及什么是惯例配置?时的应答技巧和注意事项,需要的朋友参考一下 所谓的惯例配置,便是框架的自带的配置文件。该文件在核心框架目录下的convention.php中,配置内容如下。由于该文件属于框架自带的配置文件,在实际的开发过程中,主要给我们做参考实例使用,我们很少去修改该文件的配置内容,更多的是根据需求来按照惯例配置中的字段定义和注释来在模块或者