js面向对象


一切皆对象(原始值+对象)


基本类型:字符串、数字、布尔、数组、对象、null、undefined


创建对象的三种方式

1、通过new关键字

var obj=new Object();

2、通过对象字面量

1)简单字面量

var obj={};

2)嵌套字面量

var obj={
    name:'ll',
    age:23,
    todo:function(){}
}
3、构造函数

(区别一下函数声明和函数表达式)

      console.log(add(2,5));
      function add(a,b){
        return a+b;
      };//函数声明:在声明前即可使用
      var add1 = function(a,b) {
        return a+b;
      };
      add1(3,4);//函数表达式
构造函数

 function Person(name,age) {
        this.name = name;
        this.age = age;
        this.todo = function() {
          return this.name;
        }
      }
      var aa = new Person('sonia',20);
      var bb = new Person('cole',23);

构造函数和普通函数的区别

1)this指向
构造函数的this指向创建的对象实例上
普通函数函数的调用者
2)调用方式
构造函数 new
3)命名方式
构造函数首字母大写




关于属性的操作

1、获取或设置属性  ./[]

var obj = {};
obj.name = 'll';
obj['age'] = 22;

区别:.是取自身的属性,[]可以是变量
例子:

var o = {};
o.name = 'xxx';
var nameA ='name';
console.log(o['nameA']);//xxx
console.log(o[nameA]);//undefined
2、属性的删除

delete o.name;
3、检测属性三种方式

1)in运算符

var o = {};
o.name = 'xxx';
o.age = 'undefined'
console.log('name' in o);
2)hasOwnProperty()

var o = {};
o.name = 'xxx';
o.age = 'undefined';
console.log(o.hasOwnProperty('name'));

 

3)!=undefined(不推荐)

var o = {};
o.name = 'xxx';
o.age = 'undefined'
console.log(o.age != 'undefined' );  

4、枚举

遍历对象,可以取到key,也可以取到value

var o = {x:1,y:2,z:3};
var a;
for (a in o) {console.log(a)};  // x y z
for (a in o) {console.log(o[a])};    //  1 2 3
遍历数组:可以取到索引
var arr =[{x:1},{y:2},{z:3}];
for (a in arr ){console.log(a)}   // 0 1 2
遍历数组的方法

//同步:阻塞
for(var i = 0;i<10; i++){

}
 //异步:非阻塞
 var  data = msg;
$.each(data,function(index,item) {

 })
5、序列化对象

var o2 = {x:1,y:2,z:3};
console.log(JSON.stringify(o2));
JSON.parse();//深拷贝(完全独立的)


浅拷贝(对象和数组都是浅拷贝)像影子

例:

var o3 = {x:1,y:2,z:3};
var p = o3;
o3.x = 111;
console.log(p);  //{x:111,y:2,z:3}
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值