js对象

以前学js没有系统的学习,对于js对象很陌生,今天总结一下:

先看看js对象的定义:ECMA-262 把对象(object)定义为“属性的无序集合,每个属性存放一个原始值、对象或函数”。严格来说,这意味着对象是无特定顺序的值的数组。

上面这话如何理解呢?看下面的

myobject = {属性名1:属性值1,属性2:属性值,...,属性名n:属性值n}


<span style="font-size:12px;"><span style="font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;color:#443e39;font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 28px; orphans: auto; text-align: left; text-indent: 32px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none; background-color: rgb(249, 247, 241);"><strong>JavaScript支持将对象当做直接量使用,对象直接量也常用语给变量赋值。使用对象直接量给变量赋值后,该变量可以当做对象使用</strong>。</span><strong><span style="font-size:14px;">比如{}这就可以当做一个对象直接量,只不过对象里面没有属性,可以把它赋值给一个变量,其实这和方法直接量一个道理,我们声明一个方法 function(){},
然后把这个方法赋值给一个变量。</span></strong></span>

<span style="font-size:12px;"><strong><span style="font-size:14px;">
对象的创建:
方法1:对象直接量
</span></strong></span><pre name="code" class="html">   $(function(){
       teacher={
                name:"小明老师",
                student:{
                name:"小李",
                study:function(){
                alert("好好学习");
                }
                },
                teach:function(){
                alert("好好教书");
                }
                }
        });
在html中的调用如下:<pre name="code" class="html">  <a href="javascript:;" οnclick="teacher.student.study();">学生</a>
  <a href="javascript:;" οnclick="teacher.teach();">老师</a>

 
 

方法二:使用new关键字创建

  var person=new Object();
  person.name="小李";
  person.age=25;
  person.say=function(){
     alert("hello");
	  }

<a href="javascript:;" οnclick="person.say();">人</a>

注意:创建对象的时候不要在$(function(){})里面,在方法外面



方法三:工厂模式:

    var Car = (function(){
        var Car = function(model,year,miles){
            this.model = model;
            this.year = year;
            this.miles = miles;
        };

        return function(model,year,miles){
            return new Car(model,year,miles);
        }
    })();

    var Benz = new Car("Benz",2014,1000);
    var Audi = new Car("Audi",2013,800);
方法四:构造器

    function Person(name,age){
        this.name = name;
        this.age = age;
        this.sayName = function(){
            alert(this.name);
        }
    }

    var person1 = new Person("trigkit4",21);
    var person2 = new Person("Jack",25,);

工厂模式和构造器模式差不多,一般很少用


下面在说一下一个题外的问题:

回复:7 浏览:19379
(function($) {})(jQuery) 对于很多初学者,这个很陌生,
这个函数在开发插件时很常见,其实它就是一个匿名函数,(function(param){}(param)); 这 就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值