Ai
1 Star 0 Fork 0

math.most/js_study

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
009this、arguments.js 1.46 KB
一键复制 编辑 原始数据 按行查看 历史
math.most 提交于 2022-12-24 22:28 +08:00 . update:something
/**
* this
*/
// 解析器在调用函数时,每次都会向函数内部传递一个隐含的参数
// 这个隐含的参数就是this, this指向的是一个对象
// 这个对象我们称为函数执行的上下文对象
// 根据函数的调用方式不同,this指向不同的对象
function func() {
console.log(this.name);
}
// 以函数方式调用,this为window
func(); // object window ---> undefined
var obj = {
name: '孙大圣',
sayName: func,
eatSomething: function () {
console.log(this.name + ' is eating something')
}
};
// 以对象方式调用,this为创建的对象实例
obj.sayName(); // object object ---> 孙大圣
obj.eatSomething(); // 孙大圣 is eating something
/**
* arguments: 存储所有传递的实参
*/
// 调用函数时,浏览器每次都会传递两个隐含的参数
// 1. this: 函数上下文对象
// 2. arguments: 封装实参的对象
// arguments是一个类数组对象,也可以通过索引操作数据以及获取长度
// 3. 如果以函数的形式调用, this指向永远都是window
// 4. 而以方法形式调用时, this指向调用方法的那个对象 -> 又因为对象的原型为Object -> 所以指向object
function def(a = 1, b = 2, c = 3, d) {
console.log(arguments); // [Arguments] { '0': 12 }
console.log(arguments[0]); // 12
console.log(arguments.length); // 1
// arguments.forEach(function (number) {
// console.log(number);
// });
}
def(12);
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/mathmost/js_study.git
git@gitee.com:mathmost/js_study.git
mathmost
js_study
js_study
master

搜索帮助