function fire () { console.log(this === window) } fire(); // 输出true
function fire () { // 我是被定义在函数内部的函数哦! function innerFire() { console.log(this === window) } innerFire(); // 独立函数调用} fire(); // 输出true
[스토리 - 경로 2] Dis(this)가 이세계로 여행했을 때 "Gavaskeli"(javascript) ), 그는 우연히 돈을 가지고 있었기 때문에
var obj = { fire: function () { function innerFire() { console.log(this === window) } innerFire(); // 独立函数调用 } } obj.fire(); //输出 true
var obj = { a: 1, // a是定义在对象obj中的属性 1 fire: function () { console.log(this.a) } } var a = 2; // a是定义在全局环境中的变量 2var fireInGrobal = obj.fire; fireInGrobal(); // 输出 2
var a = 2;var obj = { a: 1, // a是定义在对象obj中的属性 fire: function () { console.log(this.a) } } function otherFire (fn) { fn(); } otherFire(obj.fire); // 输出2
var obj = { a: 1, obj2: { a: 2, obj3: { a:3, getA: function () { console.log(this.a) } } } } obj.obj2.obj3.getA(); // 输出3
var obj = { a: 1, // a是定义在对象obj中的属性 fire: function () { console.log(this.a) } } var a = 2; // a是定义在全局环境中的变量 var fireInGrobal = obj.fire; fireInGrobal(); // 输出2fireInGrobal.call(obj); // 输出1
var obj = { a: 1, // a是定义在对象obj中的属性 fire: function () { console.log(this.a) } } var a = 2; // a是定义在全局环境中的变量 var fn = obj.fire;var fireInGrobal = function () { fn.call(obj) //硬绑定} fireInGrobal(); // 输出1
var fireInGrobal = function () { fn.call(obj) //硬绑定}
var fireInGrobal = fn.bind(obj);
function foo (a) { this.a = a; } var a1 = new foo (1);var a2 = new foo (2);var a3 = new foo (3);var a4 = new foo (4); console.log(a1.a); // 输出1console.log(a2.a); // 输出2console.log(a3.a); // 输出3console.log(a4.a); // 输出4
相关推荐:
위 내용은 자바스크립트 함수의 네 가지 바인딩 형식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!