创建一个对象
~~~
function Person() {
}
var person=new Person();
person.name='zhnaglei'
console.log(person.name)
~~~
每个函数都要一个prototype
~~~
function Person() {
}
Person.prototype.name='zhanglei'
var person1=new Person();
var person2=new Person();
console.log(person1.name)
console.log(person2.name)
~~~
函数的 prototype 属性指向了一个对象,这个对象正是调用该构造函数而创建的实例的原型,也就是这个例子中的 person1 和 person2 的原型。
每一个JavaScript对象在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每一个原型都会从原型继承属性
~~~
function Person() {
}
var person = new Person();
console.log(person.__proto__ === Person.prototype);
~~~
每一个原型都有一个construct属性指向关联的够着函数
~~~
function Person() {
}
console.log(Person===Person.prototype.constructor)
~~~
实例和原型的关系
~~~
function Person() {
}
Person.prototype.name='kevin'
var person=new Person();
person.name='zhanglei'
console.info(person.name)
delete person.name
console.info(person.name)
~~~
当读取实例属性时,如果找不到,就会查找与对象关联的原型中的属性,如果还是查不到就去找原型的原型,一直找到顶层为止。
继承意味着复制操作,然而JavaScript默认并不会复制对象的属性,相反, JavaScript只是在两个对象之间创建一个关联,这样,一个对象就可以通过委托访问另一个属性和函数,所以与其叫继承,委托的说法反而更准确些。
- 代码片段
- 1.格式化银行卡
- 2.将HTML内容保存为图片
- 3.mui代码片段
- 1.粘贴内容
- 2.禁止tab左右滑动
- 3.判断网络状态
- 4.将图片压缩转换为base64
- 5.双击退出应用
- 6.二维码扫描
- 7.支持竖屏
- 4.时间戳格式化
- 5.字符串操作
- 1.去除字符串中的空格
- 2.计算字符串的长度
- 3.字符串转化
- 4. 复制字符串
- 5.替换字符串
- 6.字符串替换为 *
- 7.字符串检测
- 8 .生成字符串
- 9.检测一个字符在字符串中出现的次数
- 6.检测密码的等级强度
- 7.数组操作
- 1.数组去重函数
- 2.打乱数组的顺序
- 3.求数组的最大值和最小值
- 4.求一个数组的和 基于数字数组
- 5.求一个数组的平均数 基于数字数组
- 6. 随机获取数组中的一个元素
- 7.获取一个字符在一个字符串中出现的次数
- 8.截取数组长度
- 9.删除值为'val'的数组元素
- 8.cookie操作
- 9.格式化对象 清除对象中的空和null
- 10. 将数组的人民币转换为大写
- 11.URL操作
- 12.返回两个数之间的随机数
- 13.随机产生颜色值
- 14.获取到截止时间的时间
- 15.文件类型检测
- 16.判断是否是安卓或苹果
- 17.给文字加下划线
- 源码分析
- jQuery 1.2.6 源码阅读解读
- webpack插件总结
- css杂记
- css样式初始化
- JavaScript深入
- 1.JavaScript深入之从原型到原型链
- 2.JavaScript深入之词法作用域和动态作用域
- 3.JavaScript深入之执行上下文栈