从前端小白到大佬 js基础语法笔记2

this
⑧this 上下文对象,当在函数中调用时,指的是window;当在方法中调用时,指的是调用的对象;当在构造器中调用时,指的是构造器创建的那个对象。

构造器使用工厂方方法创建对象
⑨构造器执行步骤:->立即创建一个新的对象->将新建的对象设置为this->执行构造器中的方法->返回对象
同一个构造器创建的对象就是同类对象
可使用 (对象1)instantceof(对象2) 检查是否为同类对象
任一构造器创建的对象都与object同一类,原因为继承关系

funtion person (name, age,gender) {
 	this.name=name;
 	this.age=age;
 	this.gender=gender;
}
person.prototype.sayName(){
 		alert(this.name);
};
var obj1= new person("猪八戒",12,"nan");
var obj2 =new  Person("baigujin",13,"nv ");

prototype原型对象
⑩创建的每一个函数,解析器都会自动给函数添加一个隐含属性prototype,即原型对象,当函数用以构造器的形式调用时,也会给对象添加一个prototype属性,且函数与该函数创造的对象指向同一个prototype;
11.可以通过__proto__访问;
12.原型对象相当于同类对象中的一个公共区域,我们可以在prototype中写大家都有的属性或者方法,书写方式:obj.prototype.a=123;
13.访问时可以直接obj1.a,因为解析器执行时会先在对象的一级属性中寻找,找不到就会去原型对象中找。
在这里插入图片描述
hasOwnproperty()
15.hasOwnproperty()是原型中的原型对象自带的函数,原型对象也是对象,他里头也有一个原型对象,所以解析器执行时会先在对象的一级属性中寻找,找不到就会去原型对象中找,还找不到,就到原型的原型对象中寻找,再找不到可就没了!!
15.只有原型的原型,后面不再有原型了昂,所以
console.log(mc.__proto__.hasOwnproperty("hasOwnproperty"))返回faulse;
console.log(mc.__proto__.__proto__.hasOwnproperty("hasOwnproperty"))返回ture;
console.log(mc.__proto__.__proto__.__proto__)返回null;
14.对象自己没有但原型中有的属性,使用in来检测,如a in mc,则返回ture;
使用hasOwnproperty()检测返回的是false,因为只检测一级属性,使用方式mc.hasOwnproperty(“a”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值