-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JavaScript数据类型、this、按值传递 #6
Comments
this 的工作原理(5种情况)
匿名函数在JavaScript里任何匿名函数都是属于window对象。在定义匿名函数时候它会返回自己的内存地址,如果此时有个变量接收了这个内存地址,那么匿名函数就能在程序里被使用了(可以通过在这个变量后面加一对圆括号来调用这个匿名函数),因为匿名函数也是在全局执行环境构造时候定义和赋值,所以匿名函数的this指向也是window对象。
|
参数传递按值传递
在将person传递给obj后,其name属性就被设置成了”lisi”。又将obj重新定义了一个对象,另一行代码为该对象定义了一个带有不同值的name属性。 因此:访问变量有 按值 和 按引用 两种方式,而参数只能 按值传递。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
数据类型
undefined,null,Boolean,Number、String
,它们的值保存在栈空间,我们通过按值来访问的.
对象Object、数组Array、函数function 等
,对应的值,则必须在堆内存中为这个值分配空间。由于引用类型值得大小不固定(对象有很多属性和方法),因此不能把它们保存在栈内存中。但是内存地址大小是固定的,因此可以将内存地址保存在栈内存中。
简而言之:栈内存中存放的是基本数据类型值,堆内存中存放引用类型值,引用类型值在内存中的地址存放在栈中,也就是我们常说的对象引用(指针)。
从上面例子可以看出:在变量复制方面,基本类型和引用类型也有所不同,基本类型复制的是值本身,而引用类型复制的是内存地址。
The text was updated successfully, but these errors were encountered: