`
lantian_123
  • 浏览: 1367694 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JavaScript中原型模式2

 
阅读更多

一种简洁的原型模式:

                function Person(){}
		Person.prototype={
				name:"zhangsan",
				age:33,
				sayHello:function(){
					alert("hello,I'm "+this.name);
				}
		}
		var person = new Person();
		person.sayHello();  //hello,I'm zhangsan 
		alert(person instanceof Object);//true
		alert(person instanceof Person);//true
		alert(person.constructor ==Person);//false
		alert(person.constructor==Object);//true

 

1、 使用简洁的原型模式时,constructor属性不在指向Person函数,其原因是Override默认的原型模式。新的原型模式的constructor会默认指向Object函数 .

2、    从写整个原型函数后

function Person(){}
		var person = new Person();
		Person.prototype={
				name:"zhangsan",
				age:33,
				sayHello:function(){
					alert("hello,I'm "+this.name);
				}
		}
		person.sayHello();  //报错person.sayHello is not a function

 

function Person(){}
		Person.prototype={
				name:"zhangsan",
				age:33,
				sayHello:function(){
					alert("hello,I'm "+this.name);
				}
		}
		var person = new Person();
		person.sayHello();  //hello,I'm zhangsan

 上面的两段代码:不同之处仅在于构建person实例的位置不同,却出现的不同的结果,我们可以用图来解释其真相。

第一段报错代码的图解

第二段代码的图解

 

  • 大小: 10.9 KB
  • 大小: 9.8 KB
  • 大小: 30.7 KB
分享到:
评论

相关推荐

    JavaScript中原型链存在的问题解析

    JavaScript中的原型链是一种实现对象继承的关键机制,但同时也存在一些问题。原型链是通过将一个对象的`__proto__`...在实际开发中,可以考虑使用其他继承模式,如ES6的类或寄生组合式继承,来规避这些原型链的局限性。

    深入理解JavaScript系列(42):设计模式之原型模式详解

    首先,我们来看一下JavaScript中原型对象的概念。在JavaScript中,每个对象都有一个指向它的原型对象的内部链接,这个原型对象包含了共享的属性和方法。当我们对一个对象进行属性访问时,如果对象本身没有这个属性,...

    JavaScript ES6中CLASS的使用详解

    在ES6中,class的引入是为了解决JavaScript中原型链操作的复杂性和可读性问题,使其更符合大多数开发者熟悉的面向对象编程模式。 在ES6中定义类,可以使用class关键字,后面跟上类名,然后是大括号,内部可以包含...

    2022年河南中原银行信息技术部社会招聘公告430_中原银行工资7000吗.pdf

    此外,需熟悉前后端分离开发模式,有金融行业或DevOps平台开发经验者优先。良好的沟通能力和团队协作精神是必不可少的。 **高级DevOps研发工程师** 此岗位负责规划和建设DevOps工具平台,包括持续集成、交付、容器...

    Javascript学习笔记9 prototype封装继承

    本学习笔记深入分析了JavaScript中原型和原型链在对象继承中的应用,并通过工厂模式封装了继承的实现过程。通过这种方式,可以更好地理解JavaScript中的继承机制,并在实际开发中灵活运用。掌握原型和原型链的概念...

    es6入门基础

    不过,它也引起了争议,因为在JavaScript中原型继承有着不可忽视的优势,类的加入可能会让人忽视这一点。 let和const关键字在ES6中的引入,弥补了块级作用域变量声明的缺失。let声明的变量具有块级作用域,而const...

    javascript将字符串中的多个空格替换为一个空格的正则实例

    通过这两个链接,我们可以更深入地理解和掌握JavaScript中原型的使用以及正则表达式匹配和替换的具体细节。 以上就是关于如何使用JavaScript将字符串中的多个空格替换为单个空格的全部知识点。掌握这一技巧,可以...

    js的原型继承

    以上就是JavaScript中原型继承的详细解释,包括原型对象、原型链、`__proto__`、`Object.getPrototypeOf`、借用构造函数的`call`和`apply`方法,以及常见的继承模式如组合继承和寄生组合继承。理解这些概念对于深入...

    front-end-portfolio:我的投资组合的所在地。 在Figma中创建的设计系统,并使用React,GraphQL,样式组件,GSAP和高级JavaScript(例如交叉观察器,高阶函数,代码拆分和条件组件渲染)从头开始编程

    快速响应式设计在Figma中原型化并从头绘制,然后使用JavaScript进行编程。 特征: 交互式动画主页,每页加载都有随机生成的背景和短语 超越响应:动态文本,图像和条件组件加载。 在所有屏幕尺寸上看起来都很棒 全...

    atomunion-jsrt:Writing JS program like writing java code(像写Java代码一样写JS)

    这有助于减少因JavaScript中原型链引起的常见错误,同时提供了更好的代码组织。 2. 静态方法和属性:在JavaScript中,静态方法和属性通常是在构造函数上定义的,而在Java中,它们是类级别的。Atomunion-jsrt支持在...

    iejoyswebos for .net WEBOS桌面开发框架程序

    并对EXTJS中原有的一些不适合大型项目使用的方法进行了改写,具体有: 1。全动态JS文件与CSS文件加载,具有避免重复加载的功能 2。对模块JSON进行了拓展,执行效率更高一些 3。将某些JSON数据用XML进行替换解析,...

    iejoyswebos for .net 桌面开发框架程序V1.02

    并对qwikioffice 中原有的一些不适合大型项目使用的方法进行了改写,具体有: 1。全动态JS文件与CSS文件加载,具有避免重复加载的功能 2。对模块JSON进行了拓展,执行效率更高一些 3。将某些JSON数据用XML进行替换...

    cheersee:使用Rails构建的社交网络约会应用程序

    "地点搜索已弃用" 意味着应用中原本有地点搜索功能,用户可以搜索特定位置的相关信息,但现在这一功能也已被废弃。 **知识点:** 1. **Ruby on Rails框架**:一种流行的Web开发框架,以其“约定优于配置”和DRY...

Global site tag (gtag.js) - Google Analytics