《你不知道的JavaScript(上卷)》笔记:对象基础知识

  • JavaScript主要类型

    • string
    • number
    • boolean
    • null
    • undefined
    • object
  • JavaScript内置对象

    • String
    • Number
    • Boolean
    • Object
    • Function
    • Array
    • Date
    • RegExp
    • Error
  • 在JavaScript中,内置对象指数一些内置函数,可以当作构造函数(由new产生的函数调用)来使用,从而可以构造一个对应子类型的新对象。

var strPrimitive = "I am a string";
console.log(typeof strPrimitive); // "string"
console.log(strPrimitive instanceof String); // false

var strObject = new String("I am a string");
console.log(typeof strObject); // "object"
console.log(strObject instanceof String); // true

console.log(Object.prototype.toString.call( strObject )); //[Object String]
  • 在引擎内部,对象的值的存储方式时多种多样的,一般并不会存在对象容器内部。存储在对象容器内部的是这些属性的名称,它们就像指针一样,指向这些值真正的存储位置。

  • 对象中的函数

function foo() {
    console.log("foo")
}

var someFoo = foo; // 对foo的变量引用
var myObject = {
    someFoo: foo
}
foo; // function foo(){...}
someFoo; // function foo(){...}
myObject.someFoo; // function foo(){...}

someFoo和myObject.someFoo只是对于同一个函数的不同引用,并不能说明这个函数是特别的或者“属于”某个对象。如果foo()定义时,内部有一个this引用,那这两个函数引用的唯一区别就是myObject.someFoo中的this会被隐式绑定到一个对象。

var muObject = {
    foo: function() {
        console.log("foo");
    }
}


var someFoo = muObject.foo;
someFoo; // function foo(){...}
myObject.foo; // function foo(){...}

猜你喜欢

转载自blog.csdn.net/wuweitiandian/article/details/79545837