Vue之JavaScript基础

Posted want_Success

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue之JavaScript基础相关的知识,希望对你有一定的参考价值。

闭包

  定义:能够访问另一个函数作用域的变量的函数。

  实例:

function outer() {
     var  a = ‘变量1‘
     var  inner = function () {
            console.info(a)
     }
    return inner    // inner 就是一个闭包函数,因为他能够访问到outer函数的作用域
}
var  inner = outer()   // 获得inner闭包函数
inner()   //"变量1"

 

   容易产生的问题:

    1. 引用的var定义变量可能发生变化,es6中使用let将不会有此问题

    2. this的指向问题

var object = {
     name: ‘‘object",
     getName: function() {
        return function() {
             console.info(this.name)
        }
    }
}
object.getName()()    // underfined
// 因为里面的闭包函数是在window作用域下执行的,也就是说,this指向windows

 

    3. 内存泄漏问题

function  showId() {
    var el = document.getElementById("app")
    el.onclick = function(){
      aler(el.id)   // 这样会导致闭包引用外层的el,当执行完showId后,el无法释放
    }
}

// 改成下面
function  showId() {
    var el = document.getElementById("app")
    var id  = el.id
    el.onclick = function(){
      aler(id)   // 这样会导致闭包引用外层的el,当执行完showId后,el无法释放
    }
    el = null    // 主动释放el
}

 

原型链

 

以上是关于Vue之JavaScript基础的主要内容,如果未能解决你的问题,请参考以下文章

vscode之快速生成vue模板

vue之绑定数据+datamethodscomputedwatch的基础用法

[vscode]--HTML代码片段(基础版,reactvuejquery)

48个值得掌握的JavaScript代码片段(上)

Java语言基础之方法的设计

VSCode自定义代码片段1——vue主模板