美文网首页
一切都是对象

一切都是对象

作者: oyakuki | 来源:发表于2017-05-10 10:32 被阅读0次

JAVASCRIPT中有一句著名的话—“一切皆对象”;理解这句话的关键在于怎么理解“对象”。
当然,也不是所有都是对象,值类型就不是对象。
js里面的值类型包含(数值、布尔值、null、undefined),引用类型有(对象,数组,函数)。
如果我们不能确定一个变量的类型,通常会使用typeof操作符来获得它的类型

    console.log(typeof 123);          //number
    console.log(typeof "abc");        //string
    console.log(typeof true)          //boolean
    console.log(typeof null);         //object
    console.log(typeof undefined);    //undefined
    console.log(typeof [1,2,3,4]);    //object
    console.log(typeof {name:"jim"}); //object
    console.log(typeof function(){}); //function 

通过上面的代码,我们可知(number,string,boolean,undefined)都是值类型,剩下的(null,array,function,object)等等都是引用类型

那么对象到底是什么呢?
对象——若干属性的集合。

java或者C#中的对象都是new一个class出来的,而且里面有字段、属性、方法,规定的非常严格。但是javascript就比较随意了——数组是对象,函数是对象,对象还是对象。
对象里面的一切都是属性,属性值可以是任意类型,如果属性值是函数的时候,我们就称这个属性为这个对象的方法
对象里面都是键值对的表示形式,所以城对象是若干属性的集合。

        var person = {
            name:"oyakuki",
            age:20,
            say:function(){
                console.log(this.name + "is saying")
            }
        }

上面的代码可能非常好理解,那么函数和数组也可以这样定义属性吗?——当然不行,但是它可以用另一种形式,总之函数/数组之流,只要是对象,它就是属性的集合。

        var fn = function(){
            console.log(123);
        };
        fn.a = 10;
        fn.b = function(){
            console.log
        };
        fn.c = {
            name:"oyakuki",
            age:20
        };

在上面的代码中,fn作为函数,被赋予了a,b,c三个属性,fn很明显就是属性的集合啊,就是一个对象;

在jQuery源码中,“jQuery”或者“$”,这个变量其实是一个函数,不信你可以叫咱们的老朋友typeof验证一下。

console.log(typeof $)  // function

所以只要记住:一切引用类型都是对象,对象是若干属性的集合

相关文章

  • JS原型链

    重要的事情说三遍:一切都是对象,一切都是对象,一切都是对象! 该文章主要总结了关于js原型链的几个关键点,方便自己...

  • 一切都是对象|对象编程思想及必备基础知识(下)

    一切都是对象|对象编程思想及必备基础知识(上) 一切都是对象|对象编程思想及必备基础知识(中) 前两篇文章主要介绍...

  • js原型和闭包 ( 1 )——一切皆对象

    深入理解javascript原型和闭包(1)——一切都是对象 “一切都是对象”这句话的重点在于如何去理解“对象”这...

  • 深入理解JavaScript的原型(转载)

    原文链接 1)一切都是对象 “一切都是对象”这句话的重点在于如何去理解“对象”这个概念。 ——当然,也不是所有的都...

  • JavaScript 标准对象

    标准对象包装对象DateRegExpJSON 标准对象 在JavaScript的世界里,一切都是对象。 但是某些对...

  • js内置对象

    在JavaScript中,一切都是对象或者可作为对象处理。 JavaScript内置对象:1,本地对象(通过new...

  • lesson20 作用域链(Scope Chain)

    在 JavaScript 中,函数也是对象,实际上,JavaScript 里一切都是对象。函数对象和其它对象一样,...

  • 面向对象

    一、面向对象基础 1、java中一切都是对象 java程序是由对象构成的 不同对象之间相互调...

  • 作用域链(Scope Chain)

    在 JavaScript 中,函数也是对象,实际上,JavaScript 里一切都是对象。函数对象和其它对象一样,...

  • Java Overview 入门了解

    java Object oriented 面向对象在java中,一切都是面向对象,java可以基于对象模型做很多扩...

网友评论

      本文标题:一切都是对象

      本文链接:https://www.haomeiwen.com/subject/ippwtxtx.html