javascript对象

来源:互联网 发布:数据库工程师培训学校 编辑:程序博客网 时间:2024/06/05 08:55

1. 要清楚,在javascript中没有类,所以js中的对象并不是类的实例化(像面向对象语言一样),js的对象是基于原型的。

2. 创建对象

var foo = {};foo.val1 = 'laumin';foo.val2 = true;foo.val3 = function(){     console.log('laumin');};
    2)也可以用var foo = new Object(); 来显示地创建一个对象

    3)使用关联数组模式来创建对象

var foo = {};foo['val1'] = 'laumin';foo['val2'] = false;foo['val3'] = function(){    console.log('laumin');};
    4)也可以用变量来作为关联数组的索引,如下:

var  val = 'laumin';foo[val] = 'haha';
    5)用对象的初始化器创建对象

var foo = {     'val1':'laumin';     val2 : false;      val3 : function(){            console.log('laumin');      };}
    6)构造函数创建对象

function  foo(name,age){     this.name = name;     this.age = age;     this.showinfo = function(){          console.log('my name is'+this.name);     }}
接下来就用new 来创建对象

var obj = new foo('laumin',100);

    7)在javascript中还有个特殊的上下文对象 this 

    8)javascript中的call 和apply 函数

call  和 apply的功能一样,区别在于

func.call(obj[,argv1][,argv2][,......]);//列出一个个参数

func.apply(obj,arrayargvs);//apply是以参数数组作为参数

注:argv1,argv2 和arrayargvs是传入func的参数

var  user = {    name : 'laumin';    showname : function(){          console.log(this.name);    }};var  foo ={     name : 'xiaoyu';};user.showname.call(foo);//输出 xiaoyu
     10)javascript中的bind 方法

func.bind(obj,[,argv1][,argv2][,......]);

var  user ={    name:'laumin';    showname:function(){         console.log(this.name);     };};var foo = {    name:'xiaoyu';};foo.func = user.func;foo.func();//输出lauminfoo.func = user.func.bind(user);foo.func();//输出 lauminval = user.func.bind(foo);val();//输出xiaoyuval1 = val;val1();//输出 xiaoyu
注:bind还有更深入的理解,之后再补。。。。。。。。。。。。。。。。。。。


    11)用原型和构造函数创建对象,这样子对象就可以继承父对象的的原型属性

function  foo(){}foo.prototype.name = 'laumin';foo.protorype.getname=function(){       console.log(this.name);};var obj = new foo();obj.getname();
    12)javascript原型链(明天再继续。。。。。。。。)





0 0
原创粉丝点击