JavaScript 对象的原型扩展(JS面向对象中的继承)
<script type="text/javascript">
function person(name, age) {
this._name = name;
this._age = age;
var _self = this;
this.say = function() {
console.log(this._name + '-' + this._age);
setTimeout(function() {
console.log(_self._name);
}, 2000);
}
}
person.prototype.foot = function() {
console.log("I foot " + this._age);
}
var xiaoming = new person('xiaoming', 18);
xiaoming.foot();
// console.log(JSON.stringify(xiaoming));
</script>
prototype在软件界的意思为原型即表对象的初始形态。JavaScript 中的 prototype。
js的所有function类型的对象都有一个prototype 属性。这个 prototype 属性本身又是一个object 类型的对象,因此可以给这个 prototype 对象添加任意的属性和方法。
在 JavaScript 内部,对象的属性和方法追溯机制是通过所谓的 prototype 链来实现的。当用 new 操作符构造对象时,也会同时将构造函数的 prototype 对象指派给新创建的对象,成为该对象内置的原型对象。对象内置的原型对象应该是对外不可见的,尽管有些浏览器(如 Firefox)可以让我们访问这个内置原型对象,但并不建议这样做。
这就是JavaScript的“继承”!
有了继承我们可以对已有对象(包含js内置对象、自定义对象)进行方便的扩展了!
最新文章
- 弹出popwindow 背景变暗
- 通过ipv6访问 g o o g l e
- vmware 虚拟机克隆之后配IP重启网络失败
- centos 6 安装
- js之阻止事件冒泡(待修改)和阻止默认事件
- linux伪文件与proc文件
- ubuntu12 环境下编译freerdp
- js 调用打印机方法
- 【xsy2332】Randomized Binary Search Tree DP+FFT
- cnn公式推导
- mysql日期相关的函数
- 既使用maven又使用lib下的Jar包
- (转)MySQL登陆后提示符的修改
- 在技术胖博客上学习ES6遇到的坑和想法
- cocos2d-x解决中文乱码问题的几种办法
- iptables常用配置
- 关于js代码位置的第一次总结
- Asp.Net MVC中递归死循环问题
- PHP超级全局变量、魔术变量和魔术函数的区别和联系
- Linux运维一定要知道的六类好习惯和23个教训,避免入坑!
热门文章
- failed to load AppCompat ActionBar with unkNown error
- Dispatch Sources(转)
- leetcode 790. Domino and Tromino Tiling
- 人生苦短之Python装饰器
- RobotFramework教程使用笔记——时间控件的相关操作
- Redis集群与事务
- mysql的navicat注册码生成
- 通用方法解决UITextFiled输入的时候,键盘遮挡问题
- dancing link 精确覆盖 重复覆盖 (DLX)
- 出现”/var/lib/mysql/mysql.sock“不存在的解决方法