JS 继承 函数声明
JS拷贝继承
<script>
//拷贝继承
let Person = {
name:"hb",
age:35,
paly:function () {
console.log("我会玩耍")
}
};
console.log("=====================");
let p2 = {};
for (let key in Person){
//这里可以取的是Person的键也就是name age play 而Person[key]就表示取里面的值
p2[key] = Person[key];
console.log(Person[key]);
console.log(p2[key])
}
console.log("-------------------");
console.log(p2.name);
//当类中有原型属性的时候
function Animal() {
}
Animal.prototype.p1 = "a1";
Animal.prototype.p2 = "a2";
Animal.prototype.run = function () {
console.log("我在奔跑")
};
let dog = {};
for (let pro in Animal.prototype){
dog[pro] = Animal.prototype[pro]
}
dog.run()
</script>
继承的方式
继承主要是为了节省内存空间
- 改变原型的指向:既能解决属性的继承也能解决方法的继承,但是容易造成属性的重复
- 借用构造函数继承:解决属性问题,我不能解决方法的问题
- 组合继承:继承解决属性的问题也能解决方法的问题
- 拷贝继承:就是把对象中需要共享的属性复制到心得对象中
函数表达式和函数声明
//函数声明
if (true){
function f1() {
console.log("f1")
}
}else{
function f1() {
console.log("f2")
}
}
f1()
//但是这样做的话,在IE8中会出现问题,在谷歌浏览器中没有问题
//函数表达式
let ff;
if (true){
ff = function() {
console.log("f1")
}
}else{
ff = function(){
console.log("f2")
}
}
ff();
//以后尽量用函数表达式也不要用函数声明
严格模式
//严格模式的this以上的this都是普通模式下的this
"use strict";//严格模式
function f2() {
console.log(this)
}
f2();
数组中的函数调用
//数组中的函数调用
arr= [
function () {
console.log("f1")
},
function () {
console.log("f2")
},
function () {
console.log("f3")
},
function () {
console.log("f4")
},
function () {
console.log("f5")
}
];
arr.forEach(function (ele) {
ele();
})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)