this:
存在全域的执行环境,也存在函式所开启的执行环境
var myname = 'Tom';
function callname() {
}
callname();
影响函式this的调用方式:
1.简易呼叫
2.作为物件方法
3.bind、apply、call方法
4.new (建构式)
5.DOM事件处理器
6.箭头函式
var myname = 'Tom';
function callname() {
console.log(this.myname);
}
callname(); //Tom
var name = 'GlobalName';
(function () {
function foo() {
let name = 'Chupai';
console.log(this.name);
}
foo(); // "GlobalName"
})();
var name = 'GlobalName';
function foo() {
let name = 'Chupai';
console.log(this.name);
}
(function () {
foo(); // "GlobalName"
})();
var name = 'GlobalName';
function foo() {
let name = 'Chupai';
return function() {
console.log(this.name);
};
}
let myFoo = foo();
myFoo(); // "GlobalName"
备注:所谓Callback function把函式当作另一个函式的参数,透过另一个函式来呼叫它。
详细可以参考重新认识 JavaScript: Day 18 Callback Function 与 IIFE
var name = 'GlobalName';
function foo() {
let name = 'Chupai';
function boo() {
console.log(this.name);
}
boo();
}
foo(); // "GlobalName"
var myname = 'Tom';
function callname() {
console.log(this.myname);
}
var family = {
myname: '小名家',
whosName: callname
};
family.whosName(); //小名家
解family.whosName():
var myname = 'Tom';
function callname() {
console.log(this.myname);
}
var family = {
myName: '小明家',
callName: callName,
Ming: {
myName: '小明',
callName: callName
}
}
family.callName(); //小明家
family.Ming.callName(); //小明
解:
var myName = 'TOM';
var family = {
myName: '小明家',
whoName: function () {
console.log(this.myName);
}
}
var herName = family.whoName;
herName();
解:
family.callName被赋予全域变数herName,而且并在全域环境呼叫,this从物件的范围变更到全域的范围,this.myName指向全域的var myName = 'TOM'。
var myName = 'TOM';
var family = {
myName: '小明家',
whoName: function () {
console.log(this.myName);
}
}
var herName = family.whoName;
herName;
解:
此时的this,是在物件下的属性whoName呼叫,所以此时会指向this所属物件的myName,就会出现小明家。
参考文章:
>>: 【从零开始的 C 语言笔记】第二十八篇-Struct的介绍与应用
前面的篇章大部分着重 DDD 的战术设计,这篇来说说战略设计。 功能型团队 在导入 DDD 前,我们...
前言: 经过这几天的测试 我一直想让 val_accuracy 提升 但前面的方法几乎都不太管用 所...
案例说明及适用场景 提供二个实务运用的客制案例 物料需求计划-透过销售订单生成制造订单後,载入预计投...
今天来介绍一下渗透测试常用的环境与工具,正所谓工欲善其事,必先利其器。准备好自己熟悉、习惯的作业系统...
struct 是命名并封装数个栏位数值所组合的自订型别 struct 有 3 种类型 元组结构体(t...