一种简洁的原型模式:
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中的原型链是一种实现对象继承的关键机制,但同时也存在一些问题。原型链是通过将一个对象的`__proto__`...在实际开发中,可以考虑使用其他继承模式,如ES6的类或寄生组合式继承,来规避这些原型链的局限性。
首先,我们来看一下JavaScript中原型对象的概念。在JavaScript中,每个对象都有一个指向它的原型对象的内部链接,这个原型对象包含了共享的属性和方法。当我们对一个对象进行属性访问时,如果对象本身没有这个属性,...
在ES6中,class的引入是为了解决JavaScript中原型链操作的复杂性和可读性问题,使其更符合大多数开发者熟悉的面向对象编程模式。 在ES6中定义类,可以使用class关键字,后面跟上类名,然后是大括号,内部可以包含...
此外,需熟悉前后端分离开发模式,有金融行业或DevOps平台开发经验者优先。良好的沟通能力和团队协作精神是必不可少的。 **高级DevOps研发工程师** 此岗位负责规划和建设DevOps工具平台,包括持续集成、交付、容器...
本学习笔记深入分析了JavaScript中原型和原型链在对象继承中的应用,并通过工厂模式封装了继承的实现过程。通过这种方式,可以更好地理解JavaScript中的继承机制,并在实际开发中灵活运用。掌握原型和原型链的概念...
不过,它也引起了争议,因为在JavaScript中原型继承有着不可忽视的优势,类的加入可能会让人忽视这一点。 let和const关键字在ES6中的引入,弥补了块级作用域变量声明的缺失。let声明的变量具有块级作用域,而const...
通过这两个链接,我们可以更深入地理解和掌握JavaScript中原型的使用以及正则表达式匹配和替换的具体细节。 以上就是关于如何使用JavaScript将字符串中的多个空格替换为单个空格的全部知识点。掌握这一技巧,可以...
以上就是JavaScript中原型继承的详细解释,包括原型对象、原型链、`__proto__`、`Object.getPrototypeOf`、借用构造函数的`call`和`apply`方法,以及常见的继承模式如组合继承和寄生组合继承。理解这些概念对于深入...
快速响应式设计在Figma中原型化并从头绘制,然后使用JavaScript进行编程。 特征: 交互式动画主页,每页加载都有随机生成的背景和短语 超越响应:动态文本,图像和条件组件加载。 在所有屏幕尺寸上看起来都很棒 全...
这有助于减少因JavaScript中原型链引起的常见错误,同时提供了更好的代码组织。 2. 静态方法和属性:在JavaScript中,静态方法和属性通常是在构造函数上定义的,而在Java中,它们是类级别的。Atomunion-jsrt支持在...
并对EXTJS中原有的一些不适合大型项目使用的方法进行了改写,具体有: 1。全动态JS文件与CSS文件加载,具有避免重复加载的功能 2。对模块JSON进行了拓展,执行效率更高一些 3。将某些JSON数据用XML进行替换解析,...
并对qwikioffice 中原有的一些不适合大型项目使用的方法进行了改写,具体有: 1。全动态JS文件与CSS文件加载,具有避免重复加载的功能 2。对模块JSON进行了拓展,执行效率更高一些 3。将某些JSON数据用XML进行替换...
"地点搜索已弃用" 意味着应用中原本有地点搜索功能,用户可以搜索特定位置的相关信息,但现在这一功能也已被废弃。 **知识点:** 1. **Ruby on Rails框架**:一种流行的Web开发框架,以其“约定优于配置”和DRY...