js如何使用作用域安全的构造函数
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章给大家分享的是有关js如何使用作用域安全的构造函数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。作用域安全的构造函数构造函数其实就是一个使用new操作符调用的函数f
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
大庆bim软件开发工程
辽宁三维土地资产管理软件开发
电竞酒店4台电脑需要服务器吗
数据库技术涉及哪些内容
网络安全图标怎么画
人工智能数据库专业大学排名
软件开发模块名称
军队网络安全10条禁令
金山文档数据库怎么使用
计算机网络安全向主要基于
云服务器内存需要多大呢
什么样的软件开发人才
rsync一定要服务器吗
python怎么引用数据库
全球通用服务器厂商一季度收入
网络安全综合题库
一台服务器主机连接多条网线
网络技术协会自我评价
数据库视图可以建立三表查询嘛
互联网人工智能高科技
金蝶数据服务器账号密码无效
传奇世界服务器下载
我的世界服务器小号
示范区网络安全教育
查询PT数据库
网络安全宣传教育简报
乌兰察布网络技术工程师证
魔兽视频软件开发
电力监控系统网络安全装置
编写程序软件开发是什么专业