码迷,mamicode.com
首页 > 其他好文 > 详细

create

时间:2018-07-29 19:03:41      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:create   table   lan   for   iphone8   conf   typeof   rabl   对象   

Object.create():
var newObj=Object.create(father,{扩展的新属性})
创建一个新对象newObj,继承father,并为newObj扩展新的自有属性
何时: 只要继承一个现有对象,创建一个新的子对象时
相当于: var newObj={};
newObj.__proto__=father;
Object.defineProperties(newObj,{
扩展的新属性
})



<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
//笔试:一个方法何时定义在原型对象中,何时定义在构造函数上
//定义在原型对象中的方法,只能被本类型的子对象调用
//何时:如果一个方法,只希望本类型的子对象才能调用时,就要保存在原型对象中
//定义在构造函数上的方法,不需要任何子对象,就可以直接调用
//何时:只要希望所有对象都能使用该方法时,就要江方法直接定义在构造函数上
//比如:Array.isArray(obj)
// Object.create(father);
if(typeof Object.create!=="function")
Object.create=function (father,props) {
//创建新对象
//继承father
function F() {}//媳妇
F.prototype=father;//媳妇->father
var obj=new F();//生小孩
F=null;//释放媳妇
//如果有第二个参数
if(props){
//就将第二个参数中的属性添加到新对象中
//Object.defineProperties(obj,props);
//遍历props中每个属性
for(var key in props){
//为obj添加新属性
//属性名为key
//属性值为props中key属性的value值
obj[key]=props[key].value;
}
}
return obj;
}

var father={
bal:10000000,
car:"infiniti"
}
var hmm=Object.create(father,{
phone:{
value:"iPhone8plus",
writable:true,
enumerable:true,
configurable:true
}
});
for(var key in hmm){
document.write(key+":"+hmm[key]+"<br>");
}
</script>
</body>
</html>

create

标签:create   table   lan   for   iphone8   conf   typeof   rabl   对象   

原文地址:https://www.cnblogs.com/sske531549304/p/9386086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!