自定义构造函数基本使用 大驼峰


function Teacher() {// console.log(this);this.name = '张三',this.smoke = function () {console.log('抽了一只烟');}
}// Teacher()   // 如果只执行的话,this指向的是window// 实例化后的this指向实例化的对象
var tea1 = new Teacher()
var tea2 = new Teacher()
tea1.name = '李四'
// 打印的name是不一样的,互不影响
// 构造函数的复用性高
console.log(tea1,tea2);

  构造函数接受参数

// 构造函数接受参数
function Teacher(name,age) {this.name = name,this.age = age,this.smoke = function () {console.log('抽了一只烟');}
}// Teacher()   // 如果只执行的话,this指向的是window// 实例化后的this指向实例化的对象
var tea1 = new Teacher('张三',18)
var tea2 = new Teacher('李四',28)
console.log(tea1,tea2);

构造函数接收一个对象做为参数 (参考VUE)

function Teacher(opt) {this.name = opt.name;this.age = opt.age;this.smoke = function () {console.log('抽了一只烟');}
}// Teacher()   // 如果只执行的话,this指向的是window// 实例化后的this指向实例化的对象
var tea1 = new Teacher({name: '张三',age: 18
})
var tea2 = new Teacher({name: '李四',age: 38
})
console.log(tea1,tea2);

构造函数的原理

new关键字做了什么?

新建了一个空对象,这个原型对象指向构造函数的prototype,执行构造函数后,返回这个对象.

function Cart(color, brand) {this.color = color; //都是在this上保存的this.brand = brand;// 构造函数隐式return 一个this// 如果你return 引用值是有效的, return 原始值是无效的.// return {}  // 结果是return {}// return 90  // 结果是return this
}
var car1 = new Cart('red','BYD')
console.log(car1);// GO = { 页面加载全局
//     1.Cart:function(){} ,// 执行函数
//     2.car1: { color: color, brand: brand }
// }// AO = {
//    1.看到new,会在AO保存一个this对象.上边的是在this里
//      this: { color: color, brand: brand }
// }// new 是为了改变this指向的.
// 1.保存一个空的this对象
// 2.把构造函数this东西写到创建的空this里
// 3.隐式加了一个 return this// 创建一个空对象,  功能就跟new是一样的
var my = {}
my.color = 'red'
return my

js-构造函数及与原理相关推荐

  1. JS Promise的实现原理

    转载自   JS Promise的实现原理 在前端开发过程中,会经常使用到 Promise 模式,可以使异步代码看起来如同步般清新易读,从而从回调地狱中解脱出来.ES6中 已原生支持 Promise, ...

  2. [js] axios拦截器原理是什么?

    [js] axios拦截器原理是什么? 拦截器原理其实就是用use添加用户自定义的函数到拦截器的数组中. 最后把他们放在拦截器请求前,请求后.组成promise链式调用. // 组成`Promise` ...

  3. JS异步:执行原理与回调

    JS异步:执行原理与回调 一.JS异步的执行原理 二.JS异步中的回调 一.JS异步的执行原理   我们知道JavaScript是单线程的,而浏览器是多线程的.单线程执行任务需要一个个排队进行,假如一 ...

  4. WPS加载项是如何实现调用业务系统JS的 WPS通信原理

    WPS加载项是如何实现调用业务系统JS的 WPS通信原理 wpssdk 一.业务系统调用WPS原理 二.WPS调用业务系统JS的原理 End 写在前面:JSAPI金山办公官方群 756432763 欢 ...

  5. JS构造函数返回值问题

    1.js构造函数返回值问题 构造函数本不应该,不需要有返回值,实际执行的返回值就是此构造函数的实例化对象 但是在 js 中构造函数可以有返回值也可以没有,没有时,和正常的构造函数一样,返回实例化对象 ...

  6. js构造函数、原型与继承深入

    文章目录 构造函数.原型.继承 构造函数 定义构造函数 调用构造函数 构造函数的返回值 引用构造函数 this指针 this安全策略 绑定函数 使用bind 链式语法 原型 定义原型 访问原型 设置原 ...

  7. js构造函数的实例成员和静态成员

    js构造函数的实例成员和静态成员 构造函数是一种特殊的函数,主要用来初始化对象,也就是为对象成员(属性,方法)赋初始值. Js的构造函数中可以添加一些成员,可以在构造函数本身上添加,也可以在构造函数内 ...

  8. JS原型继承工作原理

    为什么80%的码农都做不了架构师?>>>    当查找一个对象的属性时,JS会向上遍历原型链,直到找到给定的属性名称为止,如果没找到就是undefined. 大多数的JS的实现用_p ...

  9. 数据挖掘与分析 - 用JS实现推荐系统的原理与开发

    数据挖掘与分析 - 推荐系统的原理与开发 图表一览 试想一个推荐系统的应用场景 分析应用场景的需求 开始开发推荐图书系统 常规解决想法 曼哈顿距离 欧氏距离 闵可夫斯基距离 皮尔逊相关系数 余弦相似度 ...

  10. JSON和JSONP【JS+AJAX跨域原理和实现】

    前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socke ...

最新文章

  1. mybatis mysql Druid_mybatis+Druid连接池的问题
  2. arguments小结
  3. 数据库3(DBUtils)
  4. Redis高可用方案-公私混合云
  5. 算法题指南书_分类算法指南
  6. 《01》ECMAScript 6 简介
  7. Technical Tcode List
  8. 女学霸考692分想当“程序媛”,网友:快劝劝孩子
  9. HTML标签和属性大全
  10. 2020北京师范大学计算机考研,北京师范大学2021考研初试经验
  11. 简明python教程:数据结构
  12. 大学生创新创业 /互联网+ 大赛 商业计划书目录(模板)
  13. 计算机处理技术职业道德与论文,关于计算机职业道德的论文选题 计算机职业道德毕业论文题目怎样定...
  14. 网页复制的文本粘贴到Word中有背景色要怎么去掉
  15. 深入理解Flash的沙箱 – Application Domains
  16. SpringBoot 项目鉴权的 4 种方式
  17. Markdown空两格,图片居中
  18. 备案域名服务器DNS修改,未备案域名也可以用高防CDN加速
  19. linux常用命令||
  20. c语言plc库,PLC编程-C语言.ppt

热门文章

  1. 7、无线wifi传输视频开发
  2. MySQL-select-视图-函数-事务-存储方式
  3. 文本检测 OpenCV EAST 文本检测器 源代码
  4. 手写Spring-第六章-让我访问!实现前置后置处理扩展功能
  5. 造轮子计划之linux下通过matlab读写mat文件
  6. VS2013帮助文档不能打开或者打开卡死的解决方法
  7. FPGA实现FIR滤波
  8. 正余弦函数及其反函数导数推导
  9. 5 行 Python 代码就能让你的电脑永不息屏,这波必须装到...
  10. 哈工大csapp-LAB3程序优化