javascript中的对象

对象的声明方式
1、字面式声明对象,如下:
var ohj={
属性名称:属性值,
方法名称:function(){
//函数执行体
}
}
2new 操作符+Object 声明对象,如下:
var obj=new Object();
obj.属性名称=属性值;
obj.方法名称=function(){
//函数执行体
}
3、构造函数声明对象,如下:
function test([参数列表]){
this.属性名称=属性值;
this.方法名称=function(){
//函数执行体
}
}
var obj=new test(参数);
4、工厂方式声明对象,如下:
function createObject(nam,age){
var obj=new Object();
obj.name=name;
obj.age=age;
obj.run=function(){
return this.name+this.age
};
return obj;
}
var obj1=createObject(‘zhangsan’,100);
var obj2=createObject(‘lisi’,200)
5、原型模式声明对象
function test(){
test.prototype.属性名称=属性值;
test.prototype.方法名称=function(){
//函数执行体
}
}
var obj=new test();
6、混合模式声明对象
function test(1,参 2){
this.属性名称 1=1;
this.属性名称 2=2;
}
test.prototype.方法名称=function(){
//执行代码
}
var obj=new test(1,参 2);
原型与原型链
1、凡是通过 new function() 创建的对象都是函数对象,其他的都是普通对象
2、js 中所有的函数对象都有一个 prototype 属性,这个属性引用了一个对象,
即原型对象,也简称原型。普通对象没有 prototype,但有__proto__属性
3、js 在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做
__proto__的内置属性,用于指向创建它的函数对象的原型对象 prototype(即它
的构造函数的原型对象)
继承
1、原型继承
var a=function(){};
a.prototype.say()=function(){
alert(“haha”);
}
a.prototype.gongzi=500;
var b=function(){};
b.prototype=new a();
b.prototype.gongzi=1000;
var obj=new b();
注:子元素的成员属性 gongzi 会覆盖父元素。
2、构造继承
function parents(name){
this.name=name;
this.say=function(){
alert(this.name);
}
}
function child(name,age){
this.pobj=parents;
this.pobj(name);
this.age=age;
}
var c=new child(‘lisi’,20);
3、call 和 apply
传参方式不同:call 是参数列表,apply 是数组

delete用法

1、delete可以输出对象中的方法和属性。
2、delete不可删除变量。
3、delete不可以删除原型链上的属性和方法。

其它
1、访问对象不存在的属性会返回undefined.。
原因:使用之前JS会在对象中添加属性并赋值undefined。
2、symbol(若添加一个存在的属性,会把原有属性进行覆盖 为了解决这个问题会声明一个symbol类型变量) symbol(注释)。
eg:
money=symbol;
给symbol变量赋值 需告知哪个对象添加
XX.[money]=400;
console.log(XX[money]);
声明symbol 变量:注小括号是注释、声明不需要加new

// //若添加一个存在的属性,会把原有的属性进行覆盖,为了解决这个问题 会声明一个Symbol类型的变量
 let money=Symbol();
 // 给Symbol变量赋值 需要告知给哪个对象添加  
 zx[money]=300;
 //使用方法:属性名[symbol变量]
  console.log(zx[money]);
  //下面这2个输出是一样的结果
 console.log(zx.money);
 console.log(zx["money"]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值