语法——原型prototype深入理解
来源:互联网 发布:nba数据库统计三分 编辑:程序博客网 时间:2024/06/16 12:25
console.log('-----------------------------Object');var obj = {};console.log(obj.__proto__ === Object.prototype); // trueconsole.log(Object.prototype); // Objectconsole.log(obj.prototype); // undefinedconsole.log('-----------------------------Function');// prototype is a Object property of a Functionvar func = function () {};console.log(func.__proto__ === Function.prototype); // trueconsole.log(func.prototype === Function.prototype); // falseconsole.log(func.prototype === Object.prototype); // falseconsole.log(func.__proto__.__proto__ === Object.prototype); // trueconsole.log(func.prototype.__proto__ === Object.prototype); // trueconsole.log('-----------------------------new func');// we look for say from this, then from __proto__ upfunc.say = function () { console.log('func say'); }func.__proto__.say = function () { console.log('func proto say'); }func.prototype.say = function () { console.log('func prototype say'); }// From this, we know that __proto__ is only used as pointer to find parent proto.// And what the newed object has is determined by its prototype, and prototype.__proto__ etc.//func.prototype.__proto__ = func.__proto__;var new_func = new func();new_func.say();func.say();// var new_func = {};// new_func.__proto__ = func.prototype;// func.call(new_func);console.log(new_func.__proto__ === func.prototype); // trueconsole.log(new_func.prototype); // undefined, as it's an Objectfunc.prototype.say = function () { console.log('func prototype say 2'); }new_func.say(); // say 2console.log('-----------------------------derived');var de_func = function () {};de_func.prototype.__proto__ = func.prototype;var new_de = new de_func();new_de.say();// remember:// 1. var x = new obj(); means x.__proto__ = obj.prototype// 2. we look for member from this first, then from this.__proto__
0 0
- 语法——原型prototype深入理解
- 深入理解JavaScript prototype原型
- 深入理解javascript原型和闭包(3)——prototype原型
- 深入理解javascript原型和闭包(3)——prototype原型
- 深入理解javascript原型和闭包(3)——prototype原型
- 深入理解javascript原型和闭包(3)——prototype原型
- 深入理解javascript原型和闭包(3)——prototype原型
- 深入理解javascript原型和闭包(3)——prototype原型
- 深入理解javascript原型和闭包(3)——prototype原型
- 深入理解javascript原型和闭包(3)——prototype原型
- 深入理解javascript原型和闭包(3)——prototype原型
- 深入理解javascript原型和闭包(3)——prototype原型
- 深入理解javascript原型和闭包系列 深入理解javascript原型和闭包(3)——prototype原型
- 深入理解js原型__proto__与prototype
- 深入理解javascript原型和闭包(3)--prototype原型
- 深入理解JS—对象和原型
- 理解JavaScript原型prototype
- javascript原型(prototype)理解
- 香奈儿专柜最新款女包上市 真皮小羊皮经典菱格纹镶嵌chanel金属牌 一件代发
- 为什么要构造内核源码树?编写驱动时必须简历内核树吗?
- Incorrect line ending: found carriage return (\r) without corresponding newline (\n)的解决方法
- Android坐标的简单方法介绍
- 解决SVN造成的桌面图标问号
- 语法——原型prototype深入理解
- Remove Duplicates from Sorted List II
- js 添加监听
- LeetCode Minimum Path Sum
- 【BZOJ3680】吊打XXX 计算几何 广义费马点+模拟退火(爬山算法)
- poj 3680 intervals
- 软了个考——其实一开始总结编译原理我是拒绝的
- android layout及其控件在选中时的焦点冲突问题
- 混合高斯背景建模(opecv)