gpt4 book ai didi

javascript - Javascript 函数中 var 和 this 的区别?

转载 作者:可可西里 更新时间:2023-11-01 01:42:31 25 4
gpt4 key购买 nike

var tools = {};

tools.triangle = function() {
var originX = 0;
var originY = 0;
}

var tools = {};

tools.triangle = function() {
this.originX = 0;
this.originY = 0;
}

这两个代码块之间有什么区别吗?抱歉,如果之前有人问过这个问题。

最佳答案

vartools.triangle 中创建一个局部变量。变量 originXoriginY 不能与 tools.triangle 外部交互。 this 是指向您正在处理的当前对象的指针。第二个示例可用于通过 new tools.triangle(); 为对象提供属性。如果您不使用 new 而只使用 tools.triangle();this 将指向全局对象,即 window 对象。您可以使用函数方法更改 this 指向的对象 call();apply();像这样:

var myObj = {};

tools.triangle.call( myObj );

// "this" in tools.triangle now points to myObj
// myObj now has the properties originX and originY

重要的是要知道 this 可以引用任何对象,在 ES5 严格模式下也可以是 undefined 或 null

您可以找到更多信息here .

关于javascript - Javascript 函数中 var 和 this 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11285975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com