js面向对象的应用场景有哪些

这篇文章主要介绍“js面向对象的应用场景有哪些”,在日常操作中,相信很多人在js面向对象的应用场景有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”js面向对象的应用场景有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

数据赋值拷贝

1、值得赋值是独立的

num1=12;
num1=num2

将存储值赋值一份存储.

2、引用类型的赋值共享数据

var age=22;
age2=age;
age=24
console.log(age);

age2依旧是22

引用类型的赋值共享数据
指向同一片内存

3、对象的赋值

var p={
    name:"shizi",
    age:22,
}
p1=p;
console.log(p.name,p.age);
console.log(p1.name,p1.age);
console.log("------------------------");
p.name="maotai";
p.age=24;
console.log(p.name,p.age);
console.log(p1.name,p1.age);

值类型赋值--函数形参&实参

例一

var num = 10;
function foo(num){
    num=100;
    console.log(num);
}
console.log(num);
#10

例二

var num = 10;
function foo(num1){
    //实参: 调用时传递的参数
    //形参: 定义时传递的参数
    num1=100;
    console.log(num1);
}
foo(num);
console.log(num);
# 10 100 10

例三

var num = 10;
function foo(num1){
    //实参: 调用时传递的参数
    //形参: 定义时传递的参数
    //var num1=num;
    num1=100;
    console.log(num1);
}
foo(num);
console.log(num);
# 10 100 10

引用类型赋值

var obj={
    name:"宅男"
}
function jinhua(param){
    param.name="高富帅";
}
jinhua(obj);
console.log(obj.name);
#高富刷
var obj={
    name:"宅男"
}
function jinhua(param){
    param.name="高富帅";
    //重新开辟内存,param重新指向一片mem
    param={
        name: "腐女"
    }
    param.name="宅男";
}
jinhua(obj);
console.log(obj.name);
#宅男

对象的动态性

动态添加属性和方法

p={
    name:"刘德华",
    age:22
}
//添加属性方式1
p.gender="male";
//添加属性方式2
p["salary"]=2000;
//添加对象类型属性
p.foo=function(){console.log("sing");}
//访问属性方式1
console.log(p.foo());
console.log(p.salary);
//访问属性方式2
console.log(p["name"];
p={
    name:"刘德华",
    age:22
}
p["salary"]=2000;  //是字符串
console.log(p.salary);
p={
    name:"刘德华",
    age:22
}
p[0]=2000; //隐式将0转换为字符串
//console.log(p.0); //发现这种方式访问报错
console.log(p["0"]); //这种方式正常访问

以下等价

p={
    name:"刘德华",
    age:22
}
p[{}]="shizi";
console.log(p);
p={
    name:"刘德华",
    age:22
}
p["[object Object]"]="shizi";
console.log(p);

探究

a={}
console.log(a.toString());
#"[object Object]"

delete删除属性

删除对象的属性

删除未用var定义的变量.

  • delete返回布尔

  • 删除不存在的属性,返回true

  • 无法删除原形中的属性 如 delete obj.toString()

resu=delete obj.name;
# resu返回值是true
var num1=100;
console.log(num1);
console.log(window.num1);
# 100 100
num1=100;
console.log(num1);
console.log(window.num1);
# 100 100
var num1=100;
delete(num1); 
console.log(window.num1);
# 100
num1=100; //未使用var,可被delete删除
delete(num1); 
console.log(window.num1);
## undefined

到此,关于“js面向对象的应用场景有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注蜗牛博客网站,小编会继续努力为大家带来更多实用的文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论电报频道链接