javaScript常见输出方式( 三 )


下列程序的执行结果 :
if(true){function demo() {console.log("hello demo1");}}else{function demo() {console.log("hello demo2");}}demo();// 高级hello demo1低级hello demo2/*function demo() {console.log("hello demo1");}function demo() {console.log("hello demo2");}if(true){}else{}demo();*/
练习2
如果变量名称和函数名称同名, 那么函数的优先级高于变量
console.log(value); // 会输出函数的定义var value = http://www.kingceram.com/post/123;function value() {console.log("fn value");}console.log(value); // 123/*function value() {console.log("fn value");}console.log(value);var value;value = http://www.kingceram.com/post/123;console.log(value);*/
对象
面向对象( ,OO)是软件开发方法
面向对象是一种对现实世界抽象的理解,是计算机编程技术发展到一定阶段后的产物
-OOP ——面向对象编程
创建默认对象
中提供了一个默认的类, 我们可以通过这个类来创建对象
创建对象的第一种方式
let obj = new ();
创建对象的第二种方式
let obj = {}
创建对象的第三种方式
let obj = {name: "lnj",age: 33,say: function () {console.log("hello world");}};
函数和方法区别
? 1.什么是函数?
? 函数就是没有和其它的类显示的绑定在一起的, 我们就称之为函数
? 2.什么是方法?
? 方法就是显示的和其它的类绑定在一起的, 我们就称之为方法
? 3函数和方法的区别
? 3.1函数可以直接调用, 但是方法不能直接调用, 只能通过对象来调用
? 3.2函数内部的this输出的是, 方法内部的this输出的是当前调用的那个对象
? 4.无论是函数还是方法, 内部都有一个叫做this的东东
? this是什么? 谁调用了当前的函数或者方法, 那么当前的this就是谁
工厂函数
工厂函数就是专门用于创建对象的函数, 我们就称之为工厂函数
function createPerson(myName, myAge) {let obj = new Object();obj.name = myName;obj.age = myAge;obj.say = function () {console.log("hello world");}return obj;}let obj1 = createPerson("lnj", 34);let obj2 = createPerson("zs", 44);console.log(obj1);console.log(obj2);
构造函数
构造函数和工厂函数一样, 都是专门用于创建对象的
? 构造函数本质上是工厂函数的简写
function Person(myName, myAge) {// let obj = new Object();1.1 // 系统自动添加的// let this = obj; 1.2// 系统自动添加的this.name = myName;this.age = myAge;this.say = function () {console.log("hello world");}// return this; //1.3 系统自动添加的}new Person("lnj", 34);
当我们new (“lnj”, 34);系统做了什么事情
? 1.1会在构造函数中自动创建一个对象
? 1.2会自动将刚才创建的对象赋值给this
? 1.3会在构造函数的最后自动添加 this;
特点
规定,每一个构造函数都有一个 属性,指向另一个对象 。注意这个就是一个对象,这个对象的所有属性和方法,都会被构造函数所拥有 。
特点
? 1.1存储在中的方法可以被对应构造函数创建出来的所有对象共享
? 1.中除了可以存储方法以外, 还可以存储属性
? 1.如果出现了和构造函数中同名的属性或者方法, 对象在访问的时候, 访问到的是构造函中的数据
应用场景
? 中一般情况下用于存储所有对象都相同的一些属性以及方法
? 如果是对象特有的属性或者方法, 我们会存储到构造函数中
对象三角恋关系
? 1.每个"构造函数"中都有一个默认的属性, 叫做
? 属性保存着一个对象, 这个对象我们称之为"原型对象"