function类中定义变量this的简单说明

本文通过一个简单的HTML页面示例,探讨了JavaScript中this关键字的作用域问题。解释了在不同上下文中this指向的变化,并展示了如何通过构造函数来设置对象属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html> 
<html>
<head> 
</head> 
<script>
	function TObject(){
		  this.name1 = "aa";//这里不能写name,name是window的变量。否则无法得到验证结果
	}
	var t = new TObject();//执行中,this代表t
	alert("window1="+this.name1);//没有值
	alert("t="+t.name1);//有值
	TObject();//执行中,this代表window
	alert("window2="+this.name1);
</script>
<body> 
</body> 
</html> 

### 如何在C/C++头文件(.h)中定义并在函数中首次使用变量 #### 变量的声明与定义分离原则 为了防止多次包含头文件造成的多重定义错误,在头文件中通常只应该声明变量而不是定义。对于静态存储期(static storage duration)的变量,应当遵循如下做法: - **外部链接(extern)**:当希望多个源文件共享同一个全局变量时,可以在头文件中通过`extern`关键字声明该变量[^3]。 ```cpp // 在头文件 test.h 中 #ifndef TEST_H_ #define TEST_H_ extern int globalVar; #endif // TEST_H_ ``` - **实际定义**:而在其中一个对应的`.cpp`文件里提供这个变量的实际定义。 ```cpp // 在 cpp 文件 test.cpp 中 #include "test.h" int globalVar = 0; ``` 这样做的好处是可以确保在整个程序范围内只有一个这样的变量实例存在,并且其他任何包含了此头文件的地方都可以访问它。 #### 使用静态局部变量 如果是在某个特定函数内部想要保持状态,则可以考虑使用具有静态持续时间(static lifetime)的局部变量。这变量会在第一次调用的时候初始化一次之后就一直保留其值直到程序结束。 ```cpp void someFunction() { static int counter = 0; // 静态局部变量 ++counter; } ``` 这种情况下不需要也不建议把此变量放到头文件里面去声明;因为这属于私有数据成员,仅限于当前作用域可见。 #### 定义静态成员变量 针对(class),有时会遇到需要为整个而非单个对象维护某些属性的情况。这时可以通过定义静态成员来实现这一点。需要注意的是,虽然可以在体内声明这些静态成员,但是它们的具体分配空间还是得放在单独的一个CPP文件当中完成。 ```cpp class MyClass { public: static int sharedValue; // 声明静态成员 }; // 在 CPP 文件 myClass.cpp 中给出具体定义 int MyClass::sharedValue = 42; ``` 以上方法适用于不同场景下的需求,既满足了代码模块化的要求也避免了潜在的名字冲突问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值