Javascript`new`运算符和原型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript`new`运算符和原型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1396字,纯文字阅读大概需要2分钟。
内容图文
![Javascript`new`运算符和原型](/upload/InfoBanner/zyjiaocheng/679/f427705a788c45ef900bf75e22233448.jpg)
假设我们创建了一个名为“形状”的函数,并添加了一个属性“名称”&原型上的方法“ toString”:
var Shape = function () {};
Shape.prototype.name = 'Shape';
Shape.prototype.toString = function () {
return this.name;
}
console.log(Shape.name); // ''
console.log(Shape.toString()); // function () {}
var Triangle = new Shape();
console.log(Triangle.name); // 'Shape'
console.log(Triangle.toString()); // 'Shape'
“ NEW”运算符做了两件事:
1.它指向“三角形”
2.它将’Triangle’s [[proto]]指向Shape.prototype
这样我就能知道我何时叫& toString on Triangle,它搜索它的原型链,直到Shape.prototype.
但我的问题是,为什么Shape不搜索&方法的属性(甚至是对象)呢?属性?
谢谢.
解决方法:
所以我要根据我所知道的进行添加.
这里Shape是一个函数&函数只是一种特殊的对象,就像任何对象一样,函数可以具有属性.
函数自动获得一个称为prototype的属性,该属性只是一个空对象.该对象得到一些特殊处理.
当您对Function进行新的处理时,创建的对象将继承其构造函数原型的所有属性.
像波纹管
var Shape = function () {};
Shape.prototype.name = 'Shape';
Shape.prototype.toString = function () {
return this.name;
}
你什么时候说
var Triangle = new Shape();
那它做什么
var Triangle = {};
Triangle.name = Shape.prototype.name
Triangle.toString = Shape.prototype.toString;
“它设置了对象Triangle以委托给Shape.prototype.”
所以什么时候做
Triangle.name //Shape
Triangle.toString() // Shape
但是对于Shape,您将不得不说
Shape.prototype.name //Shape
Shape.prototype.toString() //Shape
内容总结
以上是互联网集市为您收集整理的Javascript`new`运算符和原型全部内容,希望文章能够帮你解决Javascript`new`运算符和原型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。