js 深度学习(八)

原型及原型链

prototype是function对象的一个属性 它也是一个对象

prototype是定义构造函数构造出的每个对象的公共祖先

所以被该构造函数构造出来的对象 都可以继承原型上的属性和方法

自己有的属性不会去原型上找

方法写在原型上 属性写在构造函数内部

__proto__是实例化以后的结果 属于实例化对象而不是构造函数

conststuctor指向构造函数本身 构造函数可以修改

bash 复制代码
插件写法:隔绝变量
立即执行函数加分号
;(function(){
var a = 1;
function Test(){
}
window.Test = Test;
})();
var test = new Test();

原型链的顶端是Object.prototype

普通函数不设置返回值 默认返回undefined,构造函数默认返回this

原型的原型是由object构造的

bash 复制代码
Object.create(对象,null)//创建对象 自定义原型 把别的对象作为自己的原型继承
Object.create(Obj.prototype) === new Obj()
Object.create(null) //纯粹空对象 连构造函数和原型都没有
//不是所有的对象都继承object.prototype
object.__proto__ //可以更改但是不可以自己指定 自己指定的无法访问属性
bash 复制代码
undefined null toString() //报错
// 原始值没有属性 数字可以是因为包装类
bash 复制代码
undefined null toString() //报错
// 原始值没有属性 数字可以是因为包装类
原型方法重写 object不能实现 所以重写
Number.prototype.toString.call(1) //"1"
Object.prototype.toString.call(1) // "[object Number]"
bash 复制代码
call // 改变this指向 
Car.call(newCar,'Benz','red')
Car.apply(newCar,['Benz','red'])
相关推荐
知识分享小能手1 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
luckys.one1 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
TomCode先生1 小时前
c#动态树形表达式详解
开发语言·c#
mCell1 小时前
JavaScript 的多线程能力:Worker
前端·javascript·浏览器
高-老师2 小时前
基于R语言的物种气候生态位动态量化与分布特征模拟
开发语言·r语言·物种气候
大翻哥哥2 小时前
Python 2025:量化金融与智能交易的新纪元
开发语言·python·金融
weixin_437830943 小时前
使用冰狐智能辅助实现图形列表自动点击:OCR与HID技术详解
开发语言·javascript·ocr
鹿鹿学长3 小时前
2025年全国大学生数学建模竞赛(C题) 建模解析|婴儿染色体数学建模|小鹿学长带队指引全代码文章与思路
c语言·开发语言·数学建模
zhousenshan3 小时前
Python爬虫常用框架
开发语言·爬虫·python
gnip4 小时前
JavaScript事件流
前端·javascript