javascript原型prototype的一个你不一定知道的理解
2015-08-11 16:06
459 查看
原型和原型链的故事
相关文章: 为什么原型继承很重要先来看看一段小代码用以引入要讲的小故事。function Foo() {}; var f1 = new Foo(); Foo.prototype.label = "Skylor.min"; alert(f1.label); //output: Skylor.min alert(Foo.label); //output: undefinedWhy? 为什么?[/code]下面来聊聊JavaScript中的原型和原型链种种。函数对象的prototype并不作用于原型链查找过程中,该原型仅用于由该函数创建的对象/实例继承的属性,而函数本身并不使用相关联的原型。但,一旦函数他自己本身就是个object的时候,它就继承了它创建者的功能的原型。值得注意的是:我们使用Foo.prototype设置函数Foo创建的所有对象的属性。我们不说f1.prototype设置属性为f1。这是一个非常重要的,一点要记住!再来个例子,更清晰的解释这句话:
function foo() {}f1 = new foo();f2 = new foo();foo.prototype.x = "hello";f1.x => "hello"f2.x => "hello";f1.x = "goodbye"; //setting f1.x hides foo.prototype.xf1.x => "goodbye" //hides "hello" for f1 onlyf2.x => "hello"delete f1.xf1.x => "hello"; //foo.prototype.x is visible again to f1.国外大佬对它两的故事有更深的理解->传送门《javascript的闭包》
相关文章推荐
- javascript 给一个对象绑定事件
- JSON Accelerator
- JavaScript的对象
- js判断子窗体是否关闭的方法
- JS - Constructor还可以这样用
- js瀑布流 原理实现揭秘 javascript 原生实现
- BZOJ 1029 [JSOI2007]建筑抢修 已更新
- 认识javascript作用域
- js 打字机效果
- (转)Javascript模块化编程(三):Require.js的用法
- 在MAC下搭建JSP开发环境
- JavaScript实现下拉列表框数据增加、删除、上下排序的方法
- javascript 取掉空格自定义函数
- JS BOM
- js 小数[非]四舍五入
- JS 数字,金额 用逗号 隔开(数字格式化)
- AJAX返回的三种数据格式
- js 图片放缩
- javascript实现选中复选框后相关输入框变灰不可用的方法
- js简易选项卡