修正constructor的指向】的更多相关文章

function Aaa(){ } //Aaa.prototype.constructor = Aaa;   //每一个函数都会有的,都是自动生成的 Aaa.prototype.name = '小明'; Aaa.prototype.age = 20; Aaa.prototype = { 这是对象的引用,会修改constructor,要修正constructor的指向 constructor : Aaa, name : '小明', age : 20 }; var a1 = new Aaa(); a…
面向对象与基于对象 在传统面向对象的语言中,有两个非常重要的概念 - 类和实例. 类定义了一类事物公共的行为和方法:而实例则是类的一个具体实现. 我们还知道,面向对象编程有三个重要的概念 - 封装.继承和多态. 但是在JavaScript的世界中,所有的这一切特性似乎都不存在. 因为JavaScript本身不是面向对象的语言,而是基于对象的语言. 这里面就有一些有趣的特性,比如JavaScript中所有事物都是对象, 包括字符串.数组.日期.数字,甚至是函数,比如下面这个例子: 1 2 3 4…
在第一章中,我们使用构造函数和原型的方式在JavaScript的世界中实现了类和继承, 但是存在很多问题.这一章我们将会逐一分析这些问题,并给出解决方案. 注:本章中的jClass的实现参考了Simple JavaScript Inheritance的做法. 首先让我们来回顾一下第一章中介绍的例子: function Person(name) { this.name = name; } Person.prototype = { getName: function() { return this.…
先来了解几个jQuery方法: <li></li> <li></li> <li></li> $("li") -> this -> jQuery对象 ->    { 0 : "li", 1 : "li", 2 : "li", length : 3 } $("<li>aaa")  的效果跟   $("…
JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象.这个对象的所有属性和方法,都会被构造函数的所拥有. 这也就意味着,我们可以把所有对象实例需要共享的属性和方法直接定义在 prototype 对象上. function Person (name, age) { this.name = name this.age = age } ​ console.log(Person.prototype) ​ Person.prototype.type = 'human…
JS高级 1. 访问对象属性(方法也是属性)的通用方式:obj['属性名'] 1. 属性名包含特殊字符,如"-".空格,访问:obj['content-type'] 2. 属性名不确定:var name='age'; var value=18; obj[name]=value 2. IIFE:立即执行函数,用于隐藏实现.避免污染全局命名空间.编写JS模块 (function(){ ... })() ---> 即匿名函数自调用 3. this的指向 1. 任何函数本质上都是通过某个…
学习目标: - 理解面向对象开发思想 - 掌握 JavaScript 面向对象开发相关模式 - 掌握在 JavaScript 中使用正则表达式 - typora-copy-images-to media JavaScript 高级 课程介绍 课程大纲 在线地址:JavaScript 高级 目标 理解面向对象开发思想 掌握 JavaScript 面向对象开发相关模式 掌握在 JavaScript 中使用正则表达式 案例演示 贪吃蛇 基本概念复习 由于 JavaScript 高级还是针对 JavaS…
问题 虽然看过这篇博文JavaScript prototype之后对原型理解不再那么模糊了,但是依然还有很多理解不甚透彻的地方.比如,今天看到一个原型式继承的例子,又有些困惑,于是找了些帖子看看,有了一些自己的理解,贴在这里,希望理解不对的地方大家可以帮我指出来,多谢了! 先看一段代码: function Person(){ console.log("in 'Person'"); } function Woman(){ console.log("in 'Woman'"…
首先用一个例子指出来constructor存在形式. function Fruit(){ } var f=new Fruit(); console.log(f.constructor);//打印出Fruit() 由上面的代码我们总结出结论1:上面的代码在控制台可以看出constructor是指向构造器Fruit的引用. function Fruit(){ this.name="水果"} //var f=new Fruit(); function Apple(){this.name=&q…
this this表示当前对象,如果在全局作用范围内使用this,则指代当前页面对象window: 如果在函数中使用this,则this指代什么是根据运行时此函数在什么对象上被调用. 我们还可以使用apply和call两个全局方法来改变函数中this的具体指向. 先看一个在全局作用范围内使用this的例子: <script type="text/javascript"> console.log(this === window); // true console.log(wi…