首页 > 代码库 > 第四章(变量、作用域、内存问题)
第四章(变量、作用域、内存问题)
基本类型的值在内存中固定大小的空间,引用类型的值是对象,保存在堆内存中
闭包的理解:http://www.cnblogs.com/dolphinX/archive/2012/09/29/2708763.html
JS中, this的值取决于调用的模式, 而JS中共有4中调用模式:1. 方法调用模式当一个函数被保存为对象的一个属性时, 我们称它为一个方法, 当一个方法被调用时, this指向该对象, 如:var obj = {value: 1,getValue: function() {alert(this.value);}};obj.getValue(); // 输出1, 此时的this指向obj注意: 该模式中, this到对象的绑定发生在方法被调用的时候.2. 函数调用模式当一个函数并非一个对象的属性时, 它被当作一个函数来调用, 此时的this指向全局对象(window), 如:window.value = 1;function getValue() { alert(this.value); }getValue(); // 输出1, 此时的this指向window.3. 构造器调用模式结合new前缀调用的函数被称为构造器函数, 此时的this指向该构造器函数的实例对象, 如:function show(val) {this.value =http://www.mamicode.com/ val;};show.prototype.getVal = function() {alert(this.value);};var func = new show(1);func.getVal(); // 输出1alert(func.value) // 输出1// 从上面的结果, 可以看出, 此时的this指向了func对象.4. apply/call调用模式apply和call方法可以让我们设定调用者中的this指向谁, 如: var fun = function(str) {this.status = str;}fun.prototype.getStatus = function() {alert(this.status);}var obj = {status: "loading"};fun.prototype.getStatus.apply(obj); // 输出"loading", 此时getStatus方法中的this指向了obj
第四章(变量、作用域、内存问题)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。