var person1 = {
name:"xxx",
age:"xxx",
eat:function(){}
};
复制代码
var person2 = new Object();
person2.name = "xxx";
person2.age = "xxx";
person2.eat = function(){};
复制代码
function Person(name,age){
this.name = name;
this.age = age;
this.eat = function(){};
}
//建立对象--->实例化一个对象的同时对属性进行初始化
var person3 = new Person("xx",11);
复制代码
function createObject(name,age){
var obj = new Object();
obj.name = name;
obj.age = age;
obj.eat = function(){};
return obj;
}
复制代码
function Person(name,age){
this.name = name;
this.age = age;
this.eat = function(){};
}
//建立对象--->实例化一个对象的同时对属性进行初始化
var person3 = new Person("xx",11);
复制代码
function Person(name,age){
this.name = name;
this.age = age;
this.eat = function(){};
}
//构造函数--->实例对象
var per = new Person("xx",11);
console.log(per.constructor == Person);//true
console.log(per instanceof Person);//true
复制代码
原型:html
实例对象的__proto__和构造函数中的prototype相同--->true,又由于实例对象是经过构造函数来建立的,构造函数中又原型对象prototype,因此实例对象的__proto__指向了构造函数的原型对象prototypenode
原型的做用之一:共享数据,节省空间程序员
简单的原型语法(缺陷:须要手动修改构造器的指向)编程
Object.prototype = {
//手动修改构造器指向
constructor:Student,
attribute:"xxx",
method: function(){};
};
复制代码
原型中的方法是能够互相访问的json
function Object(name,age){
this.name = name;
this.age = age;
}
Object.prototype.method1 = function(){
console("method1");
this.method2;
};
Object.prototype.method2 = function(){
console("method2");
this.method1;
};
var obj = new Object("xx",11);
obj.method1();// method1 method2
obj.method2();// method2 method1
复制代码
原型的使用实例浏览器
<body>
<input type="button" value="显示效果" id="btn"/>
<div id="dv" style="width: 300px;height: 200px;background-color: red"></div>
<script src="common.js"></script>
<script>
/**
* 改变元素样式内容
*@param btnObj 按钮对象
*@param dvObj 盒子对象
*@param josn 改变的样式信息
*/
function ChangStyle(btnObj,dvObj,json){
this.btnObj = btnObj;
this.dvObj = dvObj;
this.json = json;
}
//为ChangStyle的原型对象添加方法
ChangStyle.prototype.init = function(){
var that = this;//存储ChangStyle实例对象
this.btnObj.onclick = function(){
for(var key in that.json){
that.dvObj.style[key] = that.json[key];
}
};
};
//实例对象
var json = {"width" : "500px", "height" : "800px", "background" : "blue", "opacity": "0.2"};
var btn = document.getElementById("btn");
var dv = document.getElementByID("dv");
var cs = new ChangStyle(btn,dv,json);
cs.init();
//调用方法
</script>
</body>
</html>
复制代码
构造函数和实例对象和原型对象之间的关系bash
为系统的对象的原型中添加方法函数式编程
String.prototype.myReverse=function () {
for(var i=this.length-1;i>=0;i--){
console.log(this[i]);
}
};
var str="abcdefg";
str.myReverse();//g f e d c b a (隔行输出的)
复制代码
局部变量变成全局变量(把局部变量给window)函数
//函数的自调用--自调用函数
function(){
var num = 10;//局部变量
};)();
console.log(num); //报错
//win形参 window实参
(function(win){
var num = 10;
win.num = num;
})(window);
console(num);//10
复制代码
------------------------------------------------------记录于 2019.4.20 JavaScript高级(一)优化