js如何使用作用域安全的构造函数
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家分享的是有关js如何使用作用域安全的构造函数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。作用域安全的构造函数构造函数其实就是一个使用new操作符调用的函数f
千家信息网最后更新 2026年11月02日js如何使用作用域安全的构造函数
这篇文章给大家分享的是有关js如何使用作用域安全的构造函数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
作用域安全的构造函数
构造函数其实就是一个使用new操作符调用的函数
function Person(name,age,job){ this.name=name; this.age=age; this.job=job;}var person=new Person('match',28,'Software Engineer');console.log(person.name);//match如果没有使用new操作符,原本针对Person对象的三个属性被添加到window对象
function Person(name, age, job) { this.name = name; this.age = age; this.job = job;}var person = Person('match', 28, 'Software Engineer');console.log(person); //undefinedconsole.log(window.name);//matchwindow的name属性是用来标识链接目标和框架的,这里对该属性的偶然覆盖可能会导致页面上的其它错误,这个问题的解决方法就是创建一个作用域安全的构造函数。
function Person(name, age, job) { if (this instanceof Person) { this.name = name; this.age = age; this.job = job; } else { return new Person(name, age, job); }}var person = Person('match', 28, 'Software Engineer');console.log(window.name); // ""console.log(person.name); //'match'var person= new Person('match',28,'Software Engineer');console.log(window.name); // ""console.log(person.name); //'match'但是,对构造函数窃取模式的继承,会带来副作用。这是因为,下列代码中,this对象并非Polygon对象实例,所以构造函数Polygon()会创建并返回一个新的实例。
function Polygon(sides) { if (this instanceof Polygon) { this.sides = sides; this.getArea = function() { return 0; } } else { return new Polygon(sides); }}function Rectangle(wifth, height) { Polygon.call(this, 2); this.width = this.width; this.height = height; this.getArea = function() { return this.width * this.height; };}var rect = new Rectangle(5, 10);console.log(rect.sides); //undefined如果要使用作用域安全的构造函数窃取模式的话,需要结合原型链继承,重写Rectangle的prototype属性,使它的实例也变成Polygon的实例。
function Polygon(sides) { if (this instanceof Polygon) { this.sides = sides; this.getArea = function() { return 0; } } else { return new Polygon(sides); }}function Rectangle(wifth, height) { Polygon.call(this, 2); this.width = this.width; this.height = height; this.getArea = function() { return this.width * this.height; };}Rectangle.prototype = new Polygo感谢各位的阅读!关于"js如何使用作用域安全的构造函数"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
函数
安全
作用
实例
对象
属性
内容
就是
操作符
更多
模式
篇文章
不错
实用
三个
代码
会创
副作用
原型
原本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州万易互联网科技有限公司
金融科技还是互联网
互联网金融与金融科技
互联网科技媒体
朗涯互联网科技
科技创新互联网企业
互联网科技博客
互联网养老 桔豆科技
互联网巨头投资的硬核科技
海南科技产业互联网平台
小米互联网科技园设置
互联网对科技的发展
互联网科技大奖都有哪些公司
互联网科技研发水平
锡山区互联网智能科技产品供应
富国互联网科技002692
版纳互联网科技选哪家
广州三三互联网科技有限公司
深圳互联网科技园地址
互联网科技品牌
互联网 的科技创新
朗涯互联网科技
睿民互联网科技
中正互联网科技招聘
汉立互联网科技有限公司联系电话
贵州叶脉互联网科技有限公司所属行业
来此购互联网科技有限公司
华夏互联网科技业
中国互联网公司排名锤子科技
抖集互联网科技技术咨询