JS面向对象编程---第四章 对象

导读:

  • 如何创建并使用对象
  • 什么是构造器函数
  • JS中的内置对象及其应用

4.1从数组到对象
对象示例

var hero={
    name:"wkw",
    age:"22"
};

属性名必须加引号的情况:
JS的保留字
包含空格/其他字符
数字开头

4.1.3访问对象属性

hero.name //wkw
hero['name'] //wkw
hero.firseName //undefined

4.1.4调用对象方法
hero.say();
4.1.5修改属性与方法
删除

delete hero.name;

某些内建对象属性不可改变,(Math.PI)
ES5允许创建不可改变的对象

4.1.6使用this值
当我们引用this时,实际上就是“这个对象”或者“当前对象”

4.1.7构造器函数
constructor function

function Hero(name){
    this.name = name;
    this.worker = "softwareEg";
    this.whoAreYou=function(){
        return "I am"+name+"im a"+worker;
    }
}
var h1=new Hero('wkw');
var h2=new Hero('zjq');

构造器函数大写

4.1.8全局对象
不使用new操作符调用构造器函数情况,this指向全局变量

function Hero(name){
    this.name=name;
}
var j=Hero('wkw');
typeof j; //undefined,无返回值返回undefined
name;//wkw
window.name;//wkw

4.1.9构造器属性
constructor 属性指向用于创建该对象的构造器函数的引用

4.1.10instanceof操作符
一个对象是否由指定的构造器创建的
function Hero(){}
var h=new Hero;
var o ={};
h instanceof Hero; //true
h instanceof Object;//true
o instanceof Object;//true

4.1.11返回对象的函数

function factory(name){
    return{
        name:name
    };
}
var o = factory('wkw');
o.name;//wkw
o.constructor;//function Object(){[Native Code]}

实际上构造器函数也能返回对象

4.2内建对象
数据封装类对象–Object,Array,Boolean,Number,String
工具类对象–Math,Data,RegExp
错误类对象–

4.2.1Object
“空”对象并非完全无用
o.constructor 返回构造器函数的引用
o.toString() 返回对象的描述字符串//alert,连接字符串等
o.valueOf() 返回对象的单值描述信息,通常返回对象本身//简单对象返回自己

4.2.2Array
数组方法
join()返回一个由目标数组中所有元素用逗号连接而成的字符串
slice()不修改数组 返回某个片段
splice (移除首索引,移除尾索引,填补的新元素) 修改目标数组,移除并返回指定切片

4.2.3Function
prototype属性:

  1. 每个函数的prototype属性中都指向了一个对象
  2. 他只有在该函数是构造器时才会发挥作用
  3. 该函数创建的所有对象都会持有一个该prototype属性的引用,并可以将当做自身的属性来用

toString方法可查看函数的源代码
用它来区分函数时本地还是自定义的

call和apply
触发函数,指定相关的调用参数
让一个对象去”借用“另一个对象的方法,为己所用//代码重用

推断对象类型
Object.prototype.toString.call([]);//[object Array]

Array.prototype.toString.call(a);
a.toString();//已经被重写

4.2.4 Boolean
var b=new Boolean();
b是一个对象,转换成布尔值用valueOf()方法

4.2.6String对象的一些方法
toUpperCase(),toLowerCase()大小写
charAt() 返回指定位置的字符,位置不存在返回空字符串
indexOf()字符串内部搜索,从0开始
slice()/substring()返回字符串指定的区间
split() 传递的字符来分割字符串成一个数组
concat()合并字符串
以上返回都是新的字符串

4.2.7正则表达式
//待学习

你可能感兴趣的:(JS面向对象编程---第四章 对象)