网站积分的作用,网站开发需要看相关书籍,微模板如何建微网站,wordpress 导航网站模板1.1 栈内存和堆内存 我们知道程序是需要加载到内存中来执行的#xff0c;我们可以将内存划分为两个区域:栈内存和堆内存 原始类型占据的空间是在栈内存中分配的对象类型占据的空间是在堆内存中分配的
1.1.1 值类型和引用类型 原始类型的保存方式#xff1a;在变量中保存的是…1.1 栈内存和堆内存 我们知道程序是需要加载到内存中来执行的我们可以将内存划分为两个区域:栈内存和堆内存 原始类型占据的空间是在栈内存中分配的对象类型占据的空间是在堆内存中分配的
1.1.1 值类型和引用类型 原始类型的保存方式在变量中保存的是值本身 所以原始类型也被称之为是值类型 对象类型的保存方式在变量中保存的是对象的“引用” 所以对象类型也被称之为引用类型
1.1.2 JavaScript中的一些现象
现象一两个对象的比较 var num1123var num2123console.log(num1num2)//true//1.现象一两个对象的比较var obj1 {}var obj2 {}console.log(obj1obj2) //false 现象二
//现象二引用赋值 //现象二引用赋值var info {name:why,friend:{name:kobe}}var friend info.friendfriend.namejamsconsole.log(info.friend.name) //jams现象三值值传递 //3.现象三值传递function foo(a) {a200}var num100foo(num)console.log(num)//100//现象四引用传递function foo(a){a {name : why}}var obj {name:obj}foo(obj)console.log(obj)//打印的是obj的5.现象五引用传递但是在函数中创建了一个新对象没有对传入的对象进行修改 //5.现象五引用传递但是对传入的对象进行修改function foo(a) {a.name why}var obj {name: obj}foo(obj) console.log(obj)//why2.1 函数中的this指向的两种情况
2.1.1 为什么需要this 在常见的编程语言中几乎都有this这个关键字Objective-C中使用的是self但是JavaScript中的this和常见的面向对象语言中的this不太一样 常见面向对象的编程语言中比如C,java,Swift,Dart等等一系列语言中this通常只会出现在类的方法中也许你就是一个类类中的方法特别是实例方法中this代表的就是当前调用对象
代码示例 var info {//对象是一种数据结构name:why,running:function(name) {console.log(running~,this.name)//先看一下自己的作用域找有没有name,没有就去WIndow对象里面找},eating: function(name) {console.log(eating~,this.name)//封装的比较独立不会因为外部条件的改变而受到影响},studying:function(name) {console.log(studying~,this.name)}}info.eating()info.running()info.studying()2.1.3 this指向什么呢 目前掌握两个this的判断方法 在全局环境下面以默认的方式调用用一个函数this指向WIndow通过对象调用this指向调用的对象
function foo() {console.log(this)//window
}var obj {bar:function() {console.log(this)//obj}
}
obj.bar()