再和“面向对象”谈恋爱 - 对象简介(一)

JavaScript中的面向对象是个老生常谈的话题,但是依然有很多小伙伴处于懵逼的状态。面试时候最担心的就是被问到面向对象相关的内容,自己看过无数的资料,依然对面向对象百思不得其解。到底什么是原型?什么是构造函数?什么是继承。。。一提到这些概念那真是欲哭无泪、悲愤交加,甚至恨的直咬牙!所以有必要重新再谈一次面向对象。同时我也希望通过这几篇文章让你对面向对象由恨生爱,再到爱恨交加,最后爱得死去活来!

对象

  各位老铁们应该听过一个词叫“一切皆对象”,而“面向对象”中也带了一个“对象”,可见“对象”这个词非常重要。所以弄清楚 “对象”是什么尤为重要。

  对象在生活中指的是女朋友或者男朋友,而在JavaScript里说的通俗一点就是一个放了很多属性与方法的集合,有很多的属性与方法是一个对象最显著的特点(可以粗暴的认为,但凡有属性与方法的就是个对象)。JavaScript里除了运算符、语句、表达式(这些都是基本语法,任何一门语言都得有基本的语法)以外,其它的都是对象或者说是某个对象身上的一部分,所以说js里一切皆对象是有讲究的。换句话说,我们在写js的时候,其实都是用一些基本语法去操作对象

1、字符串

'kaivon'.length;         //6 属性
'kaivon'.substring(2);   //ivon  方法

2、数字

(12.25).toFixed(1);     //12.3 方法

3、布尔值

true.toString();        //true 方法

4、函数

const fn=function(){};
fn.name;    //fn    属性
fn.call(window);    //方法

数组与对象想必就更不用解释了

对象分类

在JavaScript中我把对象分为三类,全局对象、内置对象、自定义对象

1、全局对象

  • 它是JavaScript预定义的对象,作为JavaScript的全局函数和全局属性的占位符
  • 它是顶层对象,由宿主环境决定类型
    1、网页里为window

    this===window;  //true

    2、node里为Global

  • 它身上的属性或方法可以直接使用,不用指定所属对象

parseInt('12a');   //12
window.parseInt('12a);  //12
String(12); //12
window.String(12);  //12
  • 它有构造函数但无法实例化
window.constructor===Window; //true
window instanceof Window;   //true
new Window();   //报错

2、内置对象

  • ECMAScript自己定义的对象,每个对象都有一个自己对应的构造函数
Object.prototype.constructor===Object;      //true
Array.prototype.constructor===Array;        //true
Function.prototype.constructor==Function;   //true
  • 每个内置对象都是全局对象的一个属性(内置对象都是全局对象的儿子)
window.Object===Object;      //true
window.Array===Array;        //true
window.Function==Function;   //true
Number.prototype.__proto__===Object.prototype;  //true
String.prototype.__proto__===Object.prototype;  //true
Boolean.prototype.__proto__===Object.prototype; //true
Array.prototype.__proto__===Object.prototype;   //true
Function.prototype.__proto__===Object.prototype;//true

可能有些小伙伴在这里会不理解,没关系。这里想让你知道的是内置对象反正能跟Object扯上关系,后面的文章会详细去说,我们要放长线掉大鱼。

3、自定义对象

面向对象的内容,后面文章详细说

这篇文章主要介绍对象的概念,下一篇文章详细介绍面向对象里的相关概念

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈学辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值