首先我们可以看看平时我们常用的 var str = 'hello'; alert(typeof str); //string var str = new String("hello"); alert(typeof str); //object 上面那个是表示基本类型string类型,下面这个是表示对象类型(String对象类型) 然而纵使是string基本类型,依然可以调用charAt等方法 var str = 'hello'; str.charAt(); str.indexOf('e…
1. 构造函数原型对象:prototype ① 构造函数独立创建对象,消耗性能 function Person(name) { this.name = name; this.sayHello = function () { console.log("Hello,my name is " + this.name) } } var P1 = new Person("Tom"); var P2 = new Person("Tom"); P1.sayHe…
封装 ,继承 ,原型, 原型链 封装 ? 面向对象有三大特性,封装.继承和多态.对于ES5来说,没有class(类)的概念,并且由于JS的函数级作用域(函数内部的变量在函数外访问不到),所以我们就可以模拟 class (类)的概念,在ES5中,类其实就是保存了一个函数的变量,这个函数有自己的属性和方法:将属性和方法组成一个类的过程就是封装. 那么,如果我们要把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我…
函数在整个js中是最复杂也是最重要的知识 一个函数中存在多面性: 1.它本身就是一个普通的函数,执行的时候形成的私有作用域(闭包),形参赋值,预解释,代码执行,执行完 成后栈内存销毁/不销毁. 2."类":它有自己的实例,也有一个叫做prototype属性 是自己的原型,它的实例都可以指向自己的原型 3."普通对象":和var obj={}中的obj一样,就是一个普通的对象,它作为对象可以有一些自己的私有属性,也可以通过__proto__找到Function.pro…
继承:当前对象没有的属性和方法,别人有,拿来给自己用,就是继承 1 混入式继承 var I={ }; var obj = { name: 'jack', age:18, sayGoodbye : function () { console.log("goodbye") ; } } // 混入式继承, a中 将继承obj的所有属性 for (var k in obj ) { a[k] = obj [k] ; } 2.原型继承 利用原型中的成员可以被其相关对象共享这一特性,可以实现继承 实…
参考一手资料:http://dmitrysoshnikov.com/ecmascript/javascript-the-core/中文翻译版本:https://zhuanlan.zhihu.com/p/32042645 Javascript 是一种单线程编程语言,这意味着它只有一个调用栈,call Stack(调用栈 ,,先入后出) 核心:对象,原型链,构造函数,执行上下文堆栈,执行上下文,变量对象,活动对象,作用域链,闭包,This js原型链? 定义 原型对象也是简单的对象并且可以拥有它们自…
最近从网上看到别人详细得讲解了js的原型对象和原型链,看完感觉是看得最清晰的一个,于是,摘录到自己博客里 对于新人来说,JavaScript的原型是一个很让人头疼的事情,一来prototype容易与__proto__混淆,二来它们之间的各种指向实在有些复杂,其实市面上已经有非常多的文章在尝试说清楚,有一张所谓很经典的图,上面画了各种线条,一会连接这个一会连接那个,说实话我自己看得就非常头晕,更谈不上完全理解了.所以我自己也想尝试一下,看看能不能把原型中的重要知识点拆分出来,用最简单的图表形式说清…
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 先梳理一下定义: 我们通常认为 object 是普通对象,function 是函数对象: Function 跟 Object 本身是 javascript 自带的函数对象: 每一个函数对象都有一个显示的 prototype 属性,它代表了对象的原型(Function.prototype 函数对象是个例外,没有 prototype 属性): 所有对象(普通对象 和 函数对象)都有一个名为 __proto_…
原型对象,原型链这些知识属于基础类知识.但是平时开发过程中也很少用到. 看网上的意思,原型链用于es5开发场景下的继承.es6有了类语法糖之后,就自带继承了. 通过理解,个人画了一张原型链解构的关系图: 可以看出: 从构造函数F开始 new 构造函数F就是实例对象f(var f=new F()) 构造函数F.prototype就是F的原型对象(F.prototype==F原型对象) F原型对象.constructor就是构造函数F(F.prototype.constructor==F) F原型对…
在javascript中,当系统加载构造函授后 ,会自动在内存中增加一个对象,这个对象就是原型对象.构造函数和原型对象在内存中表现为相互独立,但两者之间还存在联系,构造函数的prototype是原型对象,而原型对象的constructor是构造函数. 创建对象的方法 字面量.构造函数.Object.create <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q…