检测对象类型的两种方式,constructor属性和instanceof
//本例是为了记录检测对象类型的两种方式,即constructor属性和instanceof操作符。详见《高三》P145
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
this.say = function () {
alert("hi,i'm " + name + "!");
}
}
var person1 = new Person("kitty", 18, "Student");
var person2 = new Person("wede", 29, "SoftWare");
//利用constructor属性检测对象类型
alert(person1.constructor == Person); //true
alert(person2.constructor == Person); //true
//利用instanceof操作符检测对象类型
alert(person1 instanceof Person); //true
alert(person2 instanceof Person); //true
/********************************************************************************/
//利用instanceof操作符同样也能检测到继承自Object基类的所有类型,比如这样:
alert(person1 instanceof Object); //true
alert(person2 instanceof Object); //true
//对比constructor属性,可以看出,constructor属性的值为对象的直接父级
alert(person1.constructor == Object); //false
alert(person2.constructor == Object); //false
//本例是上面示例的补充,意在说明函数的重构
//详见《高三》P147
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
this.say = say; //注意,这里将外部函数say的作用域指向了函数内部
}
function say() {
alert("Hello,I'm "+this.name+","+this.age+" years old,i'm a "+this.job);
}
var person1 = new Person("kitty", 18, "Student");
var person2 = new Person("wede", 29, "SoftWare");
person1.say();
person2.say();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端